2017-09-21 70 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

相關問題