diff --git a/README.md b/README.md
index 5639a22..3cdddcb 100644
--- a/README.md
+++ b/README.md
@@ -35,7 +35,7 @@ See https://github.com/googlesamples/android-ConstraintLayoutExamples
- [ ] Dimension constraints
* [x] Ratio
* [x] Percent dimension
- * [ ] Min and Max
+ * [x] Min and Max
* [ ] `MATCH_CONSTRAINT` dimensions _(Added in 1.1)_
* [ ] `WRAP_CONTENT` : enforcing constraints _(Added in 1.1)_
* [ ] Widgets dimension constraints
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 36749ba..25c7c52 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -34,6 +34,9 @@
+
\ No newline at end of file
diff --git a/app/src/main/java/com/hossainkhan/android/demo/data/LayoutDataStore.kt b/app/src/main/java/com/hossainkhan/android/demo/data/LayoutDataStore.kt
index 0d6a2b3..cfa02ef 100644
--- a/app/src/main/java/com/hossainkhan/android/demo/data/LayoutDataStore.kt
+++ b/app/src/main/java/com/hossainkhan/android/demo/data/LayoutDataStore.kt
@@ -111,6 +111,18 @@ class LayoutDataStore @Inject constructor(
"The ratio can be expressed either as:\n" +
"\n * a float value, representing a ratio between width and height" +
"\n * a ratio in the form \"width:height\", for example: `layout_constraintDimensionRatio=\"16:9\"`"),
+
+ /*
+ * https://developer.android.com/reference/android/support/constraint/ConstraintLayout#DimensionConstraints
+ */
+ LayoutInformation(
+ layoutResourceId = R.layout.preview_dimension_min_max,
+ thumbnailResourceId = R.drawable.thumb_dimension_min_max,
+ title = "Dimension: Min & Max (width/height)",
+ description = "You can define minimum and maximum sizes for the ConstraintLayout itself:\n\n" +
+ "* Standard attributes can should be use - `minWidth`, `minHeight`, `maxWidth`, `maxHeight`.\n" +
+ "* Those minimum and maximum dimensions will be used by ConstraintLayout when its dimensions are set to `WRAP_CONTENT`"),
+
LayoutInformation(
layoutResourceId = R.layout.preview_dimension_percent,
thumbnailResourceId = R.drawable.thumb_dimension_percentage,
@@ -118,6 +130,7 @@ class LayoutDataStore @Inject constructor(
description = "To use percent, you need to set the following:\n\n" +
"* The dimension should be set to MATCH_CONSTRAINT (0dp)\n" +
"* Then set the `layout_constraintWidth_percent` or `layout_constraintHeight_percent` attributes to a value between 0.0 and 1.0"),
+
LayoutInformation(
layoutResourceId = R.layout.preview_virtual_helper_guideline,
thumbnailResourceId = R.drawable.thumb_virtual_helper_guideline,
diff --git a/app/src/main/java/com/hossainkhan/android/demo/di/ActivityBindingModule.kt b/app/src/main/java/com/hossainkhan/android/demo/di/ActivityBindingModule.kt
index 0ff5138..c05546f 100644
--- a/app/src/main/java/com/hossainkhan/android/demo/di/ActivityBindingModule.kt
+++ b/app/src/main/java/com/hossainkhan/android/demo/di/ActivityBindingModule.kt
@@ -17,6 +17,7 @@
package com.hossainkhan.android.demo.di
import com.hossainkhan.android.demo.ui.layoutpreview.LayoutChainStyleActivity
+import com.hossainkhan.android.demo.ui.layoutpreview.LayoutDimensionMinMaxActivity
import com.hossainkhan.android.demo.ui.layoutpreview.LayoutGuidelineBarrierActivity
import com.hossainkhan.android.demo.ui.layoutpreview.LayoutGuidelineGroupActivity
import com.hossainkhan.android.demo.ui.layoutpreview.LayoutPreviewBaseActivity
@@ -68,4 +69,8 @@ abstract class ActivityBindingModule {
@ActivityScope
@ContributesAndroidInjector
abstract fun layoutGuidelineGroupActivity(): LayoutGuidelineGroupActivity
+
+ @ActivityScope
+ @ContributesAndroidInjector
+ abstract fun layoutDimensionMinMaxActivity(): LayoutDimensionMinMaxActivity
}
\ No newline at end of file
diff --git a/app/src/main/java/com/hossainkhan/android/demo/ui/browse/LayoutBrowseViewModel.kt b/app/src/main/java/com/hossainkhan/android/demo/ui/browse/LayoutBrowseViewModel.kt
index 53e3918..3e1f0e4 100644
--- a/app/src/main/java/com/hossainkhan/android/demo/ui/browse/LayoutBrowseViewModel.kt
+++ b/app/src/main/java/com/hossainkhan/android/demo/ui/browse/LayoutBrowseViewModel.kt
@@ -23,6 +23,7 @@ import com.hossainkhan.android.demo.R
import com.hossainkhan.android.demo.data.AppDataStore
import com.hossainkhan.android.demo.data.LayoutInformation
import com.hossainkhan.android.demo.ui.layoutpreview.LayoutChainStyleActivity
+import com.hossainkhan.android.demo.ui.layoutpreview.LayoutDimensionMinMaxActivity
import com.hossainkhan.android.demo.ui.layoutpreview.LayoutGuidelineBarrierActivity
import com.hossainkhan.android.demo.ui.layoutpreview.LayoutGuidelineGroupActivity
import com.hossainkhan.android.demo.ui.layoutpreview.LayoutVisibilityGoneActivity
@@ -65,6 +66,9 @@ class LayoutBrowseViewModel(
R.layout.preview_virtual_helper_group -> {
browseNavigator.loadLayoutPreview(LayoutGuidelineGroupActivity::class.java, layoutResId)
}
+ R.layout.preview_dimension_min_max -> {
+ browseNavigator.loadLayoutPreview(LayoutDimensionMinMaxActivity::class.java, layoutResId)
+ }
else -> {
// By default it loads the preview activity with the layout requested.
browseNavigator.loadLayoutPreview(layoutResId)
diff --git a/app/src/main/java/com/hossainkhan/android/demo/ui/layoutpreview/LayoutDimensionMinMaxActivity.kt b/app/src/main/java/com/hossainkhan/android/demo/ui/layoutpreview/LayoutDimensionMinMaxActivity.kt
new file mode 100644
index 0000000..7375ff3
--- /dev/null
+++ b/app/src/main/java/com/hossainkhan/android/demo/ui/layoutpreview/LayoutDimensionMinMaxActivity.kt
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2019 Hossain Khan
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.hossainkhan.android.demo.ui.layoutpreview
+
+import android.os.Bundle
+import android.widget.Button
+import android.widget.TextView
+import com.hossainkhan.android.demo.R
+
+/**
+ * Activity showcasing how virtual guideline group containing multiple views and how it can be changed.
+ *
+ * See https://developer.android.com/reference/android/support/constraint/Barrier
+ */
+class LayoutDimensionMinMaxActivity : LayoutPreviewBaseActivity() {
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ // Setup additional view that is only available in this screen.
+ val toggleButton = findViewById