2017-05-25 432 views
3

所以我想了解新的ConstraintLayout的东西,因为iOS开发者的东西看起来没问题。ANDROID:ConstraintLayout:layout_constraintVertical_bias不按预期方式工作

这是我的看法enter image description here

我所试图做的是让4个方格是在垂直轴上(这样的粉红色60%尺寸略有不同,蓝色低于40%,在右侧40蓝%,黑人60%)

layout_constraintVertical_bias阅读起来,这应该做但我想它似乎什么都不做

<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.Guideline 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/left_guideline" 
     android:orientation="vertical" 
     tools:layout_editor_absoluteY="0dp" 
     tools:layout_editor_absoluteX="58dp" 
     app:layout_constraintGuide_percent="0.16111112" /> 

    <android.support.constraint.Guideline 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/right_guideline" 
     app:layout_constraintGuide_percent="0.85" 
     android:orientation="vertical" 
     tools:layout_editor_absoluteY="0dp" 
     tools:layout_editor_absoluteX="306dp" /> 

    <android.support.constraint.Guideline 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/bottom_guideline" 
     app:layout_constraintGuide_percent="0.85" 
     android:orientation="horizontal" 
     tools:layout_editor_absoluteY="434dp" 
     tools:layout_editor_absoluteX="0dp" /> 

    <ImageButton 
     android:id="@+id/yourStoryButton" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:layout_marginBottom="8dp" 
     android:layout_marginTop="8dp" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintHorizontal_bias="0.0" 
     app:layout_constraintLeft_toLeftOf="@+id/left_guideline" 
     app:layout_constraintRight_toLeftOf="@+id/right_guideline" 
     app:layout_constraintTop_toTopOf="@+id/bottom_guideline" 
     app:layout_constraintVertical_bias="0.0" /> 

    <ImageButton 
     style="?android:attr/borderlessButtonStyle" 
     android:padding="0dp" 
     android:id="@+id/leftTopButton" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     app:layout_constraintBottom_toTopOf="@+id/leftBottomButton" 
     app:layout_constraintLeft_toRightOf="@+id/left_main_guideline" 
     app:layout_constraintRight_toLeftOf="@+id/rightTopButton" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintVertical_bias="0.6" 
     app:srcCompat="@color/colorAccent" /> 

    <ImageButton 
     style="?android:attr/borderlessButtonStyle" 
     android:padding="0dp" 
     android:id="@+id/rightTopButton" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     app:layout_constraintBottom_toTopOf="@+id/rightBottomButton" 
     app:layout_constraintLeft_toRightOf="@+id/leftTopButton" 
     app:layout_constraintRight_toLeftOf="@+id/right_main_guideline" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintVertical_bias="0.4" 
     app:srcCompat="@color/colorPrimary" /> 

    <ImageButton 
     style="?android:attr/borderlessButtonStyle" 
     android:padding="0dp" 
     android:id="@+id/leftBottomButton" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     app:layout_constraintBottom_toTopOf="@+id/bottom_guideline" 
     app:layout_constraintTop_toBottomOf="@+id/leftTopButton" 
     app:layout_constraintLeft_toRightOf="@+id/left_main_guideline" 
     app:layout_constraintRight_toLeftOf="@+id/rightBottomButton" 
     app:layout_constraintVertical_bias="0.4" 
     app:srcCompat="@color/colorPrimaryDark" /> 

    <ImageButton 
     android:id="@+id/rightBottomButton" 
     style="?android:attr/borderlessButtonStyle" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:padding="0dp" 
     app:layout_constraintBottom_toTopOf="@+id/bottom_guideline" 
     app:layout_constraintLeft_toRightOf="@+id/leftBottomButton" 
     app:layout_constraintRight_toLeftOf="@+id/right_main_guideline" 
     app:layout_constraintTop_toBottomOf="@+id/rightTopButton" 
     app:layout_constraintVertical_bias="0.6" 

     app:srcCompat="@android:color/background_dark" /> 

    <android.support.constraint.Guideline 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/left_main_guideline" 
     android:orientation="vertical" 
     app:layout_constraintGuide_percent="0.0" 
     tools:layout_editor_absoluteY="0dp" 
     tools:layout_editor_absoluteX="0dp" /> 

    <android.support.constraint.Guideline 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/right_main_guideline" 
     android:orientation="vertical" 
     app:layout_constraintGuide_percent="1.0" 
     tools:layout_editor_absoluteY="0dp" 
     tools:layout_editor_absoluteX="360dp" /> 

</android.support.constraint.ConstraintLayout> 

上午我不正确的是app:layout_constraintVertical_bias控制该视图的增长百分比(如重量做)

回答

2

,而不是设置layout_constraintVertical_bias这集layout_constraintVertical_weight

+0

完美的作品(我在写自己的答案)你知道layout_constraintVertical_bias实际上做了什么 – Burf2000

+1

如果父级在视图的大小上有更多的空间在该特定的轴上,则用于排列视图。默认情况下,他们有0.5个偏差,意味着他们被集中。如果你想在任何特定的方向对齐它们,请使用bias。有更好的看看这里:https://developer.android.com/reference/android/support/constraint/ConstraintLayout.html在偏见部分。 – Sac

+0

谢谢,非常有帮助:) – Burf2000

1

所以,我仍然什么layout_constraintVertical_bias应该做的困惑,但是app:layout_constraintVertical_weight做了什么我的预期layout_constraintVertical_bias

<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.Guideline 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/left_guideline" 
     android:orientation="vertical" 
     tools:layout_editor_absoluteY="0dp" 
     tools:layout_editor_absoluteX="58dp" 
     app:layout_constraintGuide_percent="0.16111112" /> 

    <android.support.constraint.Guideline 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/right_guideline" 
     app:layout_constraintGuide_percent="0.85" 
     android:orientation="vertical" 
     tools:layout_editor_absoluteY="0dp" 
     tools:layout_editor_absoluteX="306dp" /> 

    <android.support.constraint.Guideline 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/bottom_guideline" 
     app:layout_constraintGuide_percent="0.85" 
     android:orientation="horizontal" 
     tools:layout_editor_absoluteY="434dp" 
     tools:layout_editor_absoluteX="0dp" /> 

    <ImageButton 
     android:id="@+id/yourStoryButton" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:layout_marginBottom="8dp" 
     android:layout_marginTop="8dp" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintHorizontal_bias="0.0" 
     app:layout_constraintLeft_toLeftOf="@+id/left_guideline" 
     app:layout_constraintRight_toLeftOf="@+id/right_guideline" 
     app:layout_constraintTop_toTopOf="@+id/bottom_guideline" 
     app:layout_constraintVertical_bias="0.0" /> 

    <ImageButton 
     style="?android:attr/borderlessButtonStyle" 
     android:padding="0dp" 
     android:id="@+id/leftTopButton" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     app:layout_constraintBottom_toTopOf="@+id/leftBottomButton" 
     app:layout_constraintLeft_toRightOf="@+id/left_main_guideline" 
     app:layout_constraintRight_toLeftOf="@+id/rightTopButton" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintVertical_weight="0.6" 
     app:srcCompat="@color/colorAccent" /> 

    <ImageButton 
     android:id="@+id/rightTopButton" 
     style="?android:attr/borderlessButtonStyle" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:padding="0dp" 
     app:layout_constraintBottom_toTopOf="@+id/rightBottomButton" 
     app:layout_constraintLeft_toRightOf="@+id/leftTopButton" 
     app:layout_constraintRight_toLeftOf="@+id/right_main_guideline" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintVertical_weight="0.4" 
     app:srcCompat="@android:color/holo_orange_dark" /> 

    <ImageButton 
     style="?android:attr/borderlessButtonStyle" 
     android:padding="0dp" 
     android:id="@+id/leftBottomButton" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     app:layout_constraintBottom_toTopOf="@+id/bottom_guideline" 
     app:layout_constraintTop_toBottomOf="@+id/leftTopButton" 
     app:layout_constraintLeft_toRightOf="@+id/left_main_guideline" 
     app:layout_constraintRight_toLeftOf="@+id/rightBottomButton" 
     app:layout_constraintVertical_weight="0.4" 
     app:srcCompat="@color/colorPrimaryDark" /> 

    <ImageButton 
     android:id="@+id/rightBottomButton" 
     style="?android:attr/borderlessButtonStyle" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:padding="0dp" 
     app:layout_constraintBottom_toTopOf="@+id/bottom_guideline" 
     app:layout_constraintLeft_toRightOf="@+id/leftBottomButton" 
     app:layout_constraintRight_toLeftOf="@+id/right_main_guideline" 
     app:layout_constraintTop_toBottomOf="@+id/rightTopButton" 
     app:layout_constraintVertical_weight="0.6" 
     app:srcCompat="@android:color/background_dark" /> 

    <android.support.constraint.Guideline 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/left_main_guideline" 
     android:orientation="vertical" 
     app:layout_constraintGuide_percent="0.0" 
     tools:layout_editor_absoluteY="0dp" 
     tools:layout_editor_absoluteX="0dp" /> 

    <android.support.constraint.Guideline 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/right_main_guideline" 
     android:orientation="vertical" 
     app:layout_constraintGuide_percent="1.0" 
     tools:layout_editor_absoluteY="0dp" 
     tools:layout_editor_absoluteX="360dp" /> 

</android.support.constraint.ConstraintLayout> 
+1

哦,很高兴,你发现它。 – Sac