java - ConstraintLayout Vertical Chain Weight -
the problem
i have simple calculator layout test constraint layout. have achieved create layout: basiclayout problem layout is, there empty space on button. want create vertical chaing weights fill complete screen.
what tried
so came layout: (see edit)
however result not want, instead produces layout: my try
so somehow ignores vertical weights. idea how fix ?
edit
after time achieved closer, closer weight still changes nothing: new code:
<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:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent"> <view android:id="@+id/test" android:layout_width="0dp" android:layout_height="0dp" android:background="?attr/colorprimary" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_torightof="parent" app:layout_constrainttop_totopof="parent" app:layout_constraintvertical_weight="5" app:layout_constraintbottom_totopof="@+id/btn_space" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_space" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="" android:textsize="30dp" app:layout_constrainthorizontal_weight="3" app:layout_constraintvertical_weight="1" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_toleftof="@+id/button155" app:layout_constrainttop_tobottomof="@+id/test" app:layout_constraintbottom_totopof="@+id/btn_13" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/button155" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="ac" android:textsize="20dp" app:layout_constraintbaseline_tobaselineof="@+id/btn_space" app:layout_constrainthorizontal_weight="1" app:layout_constraintleft_torightof="@+id/btn_space" app:layout_constraintright_toleftof="@+id/btn_clr" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_clr" android:layout_width="0dp" android:layout_height="0dp" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="clr" android:textsize="20sp" app:layout_constraintbottom_tobottomof="@+id/button155" app:layout_constrainthorizontal_weight="1" app:layout_constraintleft_torightof="@+id/button155" app:layout_constraintright_torightof="parent" app:layout_constrainttop_totopof="@+id/button155" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_13" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="13" android:textsize="30dp" app:layout_constrainthorizontal_weight="1" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_toleftof="@+id/btn_14" app:layout_constrainttop_tobottomof="@+id/test" app:layout_constraintbottom_totopof="@+id/btn_10" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_14" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="14" android:textsize="30dp" app:layout_constrainttop_totopof="@+id/btn_13" app:layout_constraintbottom_tobottomof="@+id/btn_13" app:layout_constrainthorizontal_weight="1" app:layout_constraintleft_torightof="@+id/btn_13" app:layout_constraintright_toleftof="@+id/btn_15" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_15" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="15" android:textsize="30dp" app:layout_constraintbaseline_tobaselineof="@+id/btn_13" app:layout_constrainthorizontal_weight="1" app:layout_constrainttop_totopof="@+id/btn_13" app:layout_constraintbottom_tobottomof="@+id/btn_13" app:layout_constraintleft_torightof="@+id/btn_14" app:layout_constraintright_toleftof="@+id/btn_very_good" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_very_good" android:layout_width="0dp" android:layout_height="0dp" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="sehr gut" android:textsize="20sp" app:layout_constraintbottom_tobottomof="@+id/btn_13" app:layout_constrainthorizontal_weight="2" app:layout_constraintleft_torightof="@+id/btn_15" app:layout_constraintright_torightof="parent" app:layout_constrainttop_totopof="@+id/btn_13" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_10" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="10" android:textsize="30dp" app:layout_constrainthorizontal_weight="1" app:layout_constraintvertical_weight="1" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_toleftof="@+id/btn_11" app:layout_constrainttop_tobottomof="@+id/btn_13" app:layout_constraintbottom_totopof="@+id/btn_7" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_11" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="11" android:textsize="30dp" app:layout_constrainttop_totopof="@+id/btn_10" app:layout_constraintbottom_tobottomof="@+id/btn_10" app:layout_constrainthorizontal_weight="1" app:layout_constraintleft_torightof="@+id/btn_10" app:layout_constraintright_toleftof="@+id/btn_12" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_12" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="12" android:textsize="30dp" app:layout_constrainttop_totopof="@+id/btn_10" app:layout_constraintbottom_tobottomof="@+id/btn_10" app:layout_constrainthorizontal_weight="1" app:layout_constraintleft_torightof="@+id/btn_11" app:layout_constraintright_toleftof="@+id/btn_good" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_good" android:layout_width="0dp" android:layout_height="0dp" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="gut" android:textsize="20sp" app:layout_constraintbottom_tobottomof="@+id/btn_10" app:layout_constrainthorizontal_weight="2" app:layout_constraintleft_torightof="@+id/btn_12" app:layout_constraintright_torightof="parent" app:layout_constrainttop_totopof="@+id/btn_10" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_7" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="7" android:textsize="30dp" app:layout_constrainthorizontal_weight="1" app:layout_constraintvertical_weight="1" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_toleftof="@+id/btn_8" app:layout_constrainttop_tobottomof="@+id/btn_10" app:layout_constraintbottom_totopof="@+id/btn_4" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_8" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="8" android:textsize="30dp" app:layout_constrainttop_totopof="@+id/btn_7" app:layout_constraintbottom_tobottomof="@+id/btn_7" app:layout_constrainthorizontal_weight="1" app:layout_constraintleft_torightof="@+id/btn_7" app:layout_constraintright_toleftof="@+id/btn_9" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_9" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="9" android:textsize="30dp" app:layout_constraintbaseline_tobaselineof="@+id/btn_7" app:layout_constrainthorizontal_weight="1" app:layout_constraintleft_torightof="@+id/btn_8" app:layout_constraintright_toleftof="@+id/btn_satisfying" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_satisfying" android:layout_width="0dp" android:layout_height="0dp" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="befriedigend" android:textsize="20sp" app:layout_constraintbottom_tobottomof="@+id/btn_7" app:layout_constrainthorizontal_weight="2" app:layout_constraintleft_torightof="@+id/btn_9" app:layout_constraintright_torightof="parent" app:layout_constrainttop_totopof="@+id/btn_7" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_4" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="4" android:textsize="30dp" app:layout_constrainthorizontal_weight="1" app:layout_constraintleft_toleftof="parent" app:layout_constraintvertical_weight="1" app:layout_constraintright_toleftof="@+id/btn_5" app:layout_constrainttop_tobottomof="@+id/btn_7" app:layout_constraintbottom_totopof="@+id/btn_1" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_5" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="5" android:textsize="30dp" app:layout_constraintbaseline_tobaselineof="@+id/btn_4" app:layout_constrainthorizontal_weight="1" app:layout_constraintleft_torightof="@+id/btn_4" app:layout_constraintright_toleftof="@+id/btn_6" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_6" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="6" android:textsize="30dp" app:layout_constraintbaseline_tobaselineof="@+id/btn_4" app:layout_constrainthorizontal_weight="1" app:layout_constraintleft_torightof="@+id/btn_5" app:layout_constraintright_toleftof="@+id/txt_sufficient" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/txt_sufficient" android:layout_width="0dp" android:layout_height="0dp" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="ausreichend" android:textsize="20sp" app:layout_constraintbottom_tobottomof="@+id/btn_4" app:layout_constrainthorizontal_weight="2" app:layout_constraintleft_torightof="@+id/btn_6" app:layout_constraintright_torightof="parent" app:layout_constrainttop_totopof="@+id/btn_4" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_1" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="1" android:textsize="30dp" app:layout_constrainthorizontal_weight="1" app:layout_constraintvertical_weight="1" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_toleftof="@+id/btn_2" app:layout_constrainttop_tobottomof="@+id/btn_4" app:layout_constraintbottom_totopof="@+id/view_space_before_btn_0" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_2" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="2" android:textsize="30dp" app:layout_constraintbaseline_tobaselineof="@+id/btn_1" app:layout_constrainthorizontal_weight="1" app:layout_constraintleft_torightof="@+id/btn_1" app:layout_constraintright_toleftof="@+id/btn_3" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_3" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="3" android:textsize="30dp" app:layout_constraintbaseline_tobaselineof="@+id/btn_1" app:layout_constrainthorizontal_weight="1" app:layout_constraintleft_torightof="@+id/btn_2" app:layout_constraintright_toleftof="@+id/txt_inadequate" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/txt_inadequate" android:layout_width="0dp" android:layout_height="0dp" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="mangelhaft" android:textsize="20sp" app:layout_constraintbottom_tobottomof="@+id/btn_1" app:layout_constrainthorizontal_weight="2" app:layout_constraintleft_torightof="@+id/btn_3" app:layout_constraintright_torightof="parent" app:layout_constrainttop_totopof="@+id/btn_1" /> <view android:id="@+id/view_space_before_btn_0" android:layout_width="0dp" android:layout_height="30dp" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="1" android:textsize="30dp" app:layout_constrainthorizontal_weight="1" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_toleftof="@+id/btn_0" app:layout_constraintvertical_weight="1" app:layout_constrainttop_tobottomof="@+id/btn_1" app:layout_constraintbottom_tobottomof="parent" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_0" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="0" android:textsize="30dp" app:layout_constraintbottom_tobottomof="@+id/view_space_before_btn_0" app:layout_constrainthorizontal_weight="1" app:layout_constraintleft_torightof="@+id/view_space_before_btn_0" app:layout_constraintright_toleftof="@+id/btn_result" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/btn_result" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="=" android:textsize="30dp" app:layout_constraintbottom_tobottomof="@+id/view_space_before_btn_0" app:layout_constrainthorizontal_weight="1" app:layout_constraintleft_torightof="@+id/btn_0" app:layout_constraintright_toleftof="@+id/txt_insufficient" /> <com.envidual.gradecalculator.textviewroboto android:id="@+id/txt_insufficient" android:layout_width="0dp" android:layout_height="0dp" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="ungenügend" android:textsize="20sp" app:layout_constraintbottom_tobottomof="@+id/btn_0" app:layout_constrainthorizontal_weight="2" app:layout_constraintleft_torightof="@+id/btn_result" app:layout_constraintright_torightof="parent" app:layout_constrainttop_totopof="@+id/btn_0" />
update: chain still not well-formed. change xml btn_13 have top constrained bottom of btn_space rather bottom of test shown in following xml. here image of result after change made. (i changed color of top spacer distinguish on screen.)
you can change weights want. also, 1 of views missing vertical weight. forget one, can find it. doesn't seem effect result.
<textview android:id="@+id/btn_13" android:layout_width="0dp" android:layout_height="wrap_content" android:background="?attr/selectableitembackgroundborderless" android:gravity="center" android:text="13" android:textsize="30dp" app:layout_constraintbottom_totopof="@+id/btn_10" app:layout_constrainthorizontal_weight="1" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_toleftof="@+id/btn_14" app:layout_constrainttop_tobottomof="@+id/btn_space" /> i think problem chains not well-formed. make sure chains linked top-to-bottom , bottom-to-top without break. following xml code demonstrates vertical chain equal weights. here image of looks in designer:
<?xml version="1.0" encoding="utf-8"?> <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:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent"> <textview android:id="@+id/view1" android:layout_width="0dp" android:layout_height="0dp" android:text="textview 1" app:layout_constraintbottom_totopof="@id/view2" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_torightof="parent" app:layout_constrainttop_totopof="parent" app:layout_constraintvertical_weight="1" tools:layout_editor_absolutex="8dp" /> <textview android:id="@+id/view2" android:layout_width="0dp" android:layout_height="0dp" android:text="textview 2" app:layout_constraintbottom_totopof="@id/view3" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_torightof="parent" app:layout_constrainttop_tobottomof="@id/view1" app:layout_constraintvertical_weight="1" tools:layout_editor_absolutex="8dp" tools:layout_editor_absolutey="0dp" /> <textview android:id="@+id/view3" android:layout_width="0dp" android:layout_height="0dp" android:text="textview 3" app:layout_constraintbottom_totopof="@id/view4" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_torightof="parent" app:layout_constrainttop_tobottomof="@id/view2" app:layout_constraintvertical_weight="1" tools:layout_editor_absolutex="8dp" tools:layout_editor_absolutey="0dp" /> <textview android:id="@+id/view4" android:layout_width="0dp" android:layout_height="0dp" android:text="textview 4" app:layout_constraintbottom_totopof="@id/view5" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_torightof="parent" app:layout_constrainttop_tobottomof="@id/view3" app:layout_constraintvertical_weight="1" tools:layout_editor_absolutex="8dp" tools:layout_editor_absolutey="0dp" /> <textview android:id="@+id/view5" android:layout_width="0dp" android:layout_height="0dp" android:text="textview 5" app:layout_constraintbottom_totopof="@id/view6" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_torightof="parent" app:layout_constrainttop_tobottomof="@id/view4" app:layout_constraintvertical_weight="1" tools:layout_editor_absolutex="8dp" tools:layout_editor_absolutey="0dp" /> <textview android:id="@+id/view6" android:layout_width="0dp" android:layout_height="0dp" android:text="textview 6" app:layout_constraintbottom_tobottomof="parent" app:layout_constraintleft_toleftof="parent" app:layout_constraintright_torightof="parent" app:layout_constrainttop_tobottomof="@id/view5" app:layout_constraintvertical_weight="1" tools:layout_editor_absolutex="8dp" tools:layout_editor_absolutey="0dp" /> </android.support.constraint.constraintlayout> by changing weight of top textview "3", can see how weights take effect in image. can see, top textview given 3 times vertical space other views.
Comments
Post a Comment