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

Popular posts from this blog

How to understand 2 main() functions after using uftrace to profile the C++ program? -

c# - Update a combobox from a presenter (MVP) -

How to put a lock and transaction on table using spring 4 or above using jdbcTemplate and annotations like @Transactional? -