2017-09-21 44 views
4

下面的视图需要是正方形的。我也希望将观点限制在一定的范围内。某种程度上,ConstraintLayout在与同一元素上的dimensionRatio结合使用时会忽略最大宽度/高度属性。ConstraintLayout不考虑与DimensionRatio相结合的最大宽度/高度

<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
    <View 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     app:layout_constraintTop_toTopOf="@+id/guideline_top" 
     app:layout_constraintDimensionRatio="1:1" 
     app:layout_constraintLeft_toLeftOf="@+id/guideline_left" 
     app:layout_constraintRight_toRightOf="@+id/guideline_right" 
     app:layout_constraintBottom_toBottomOf="@+id/guideline_bottom" 
     app:layout_constraintWidth_max="100dp" 
     app:layout_constraintHeight_max="100dp"/> 

目前我正在使用一种解决方法,将视图放在容器中,如下所示。但我宁愿让我的布局层次尽可能平坦。

<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
    <android.support.constraint.ConstraintLayout 
      android:layout_width="0dp" 
      android:layout_height="0dp" 
      app:layout_constraintTop_toTopOf="@+id/guideline_top" 
      app:layout_constraintLeft_toLeftOf="@+id/guideline_left" 
      app:layout_constraintRight_toRightOf="@+id/guideline_right" 
      app:layout_constraintBottom_toBottomOf="@+id/guideline_bottom" 
      app:layout_constraintWidth_max="100dp" 
      app:layout_constraintHeight_max="100dp"> 
      <View 
       android:layout_width="0dp" 
       android:layout_height="0dp" 
       app:layout_constraintTop_toTopOf="parent" 
       app:layout_constraintDimensionRatio="1:1" 
       app:layout_constraintLeft_toLeftOf="parent" 
       app:layout_constraintRight_toRightOf="parent" 
       app:layout_constraintBottom_toBottomOf="parent" 
       /> 

这是限制布局中的一项限制,您不能将最大宽度/高度与维度比率结合使用吗?

我正在使用ConstraintLayout v1.0.2。

回答

4

指定是

`app:layout_constraintDimensionRatio="H,1:1"` 

`app:layout_constraintDimensionRatio="W,1:1"` 

这应当引起ConstraintLayout拿起你的最大宽度和高度。请参阅文档中的"Ratios"

+0

为我工作!谢谢 :) – Jono0

相关问题