【背景】
想要在android中一个RelativeLayout中设置对应的weight,以便达到自动适应屏幕宽度的效果。
想要如下设置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | <? xml version = "1.0" encoding = "utf-8" ?> android:layout_width = "match_parent" android:layout_height = "match_parent" android:paddingLeft = "20sp" android:orientation = "horizontal" > < RelativeLayout android:id = "@+id/variableLabelPart" android:layout_width = "0dp" android:layout_height = "wrap_content" android:layout_weight = "1" > < TextView android:id = "@+id/variableStatus" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_centerVertical = "true" android:layout_alignParentLeft = "true" android:background = "@drawable/status_question" /> < TextView android:id = "@+id/variableLabel" android:layout_centerVertical = "true" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:gravity = "center" android:layout_toRightOf = "@id/variableStatus" android:paddingLeft = "5sp" /> </ RelativeLayout > < RelativeLayout android:id = "@+id/variableValuePart" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_weight = "1" > < EditText android:id = "@+id/variableValue" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:gravity = "center" android:enabled = "false" android:inputType = "text" /> < TextView android:id = "@+id/variableUnit" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:gravity = "center" android:paddingLeft = "5sp" /> </ RelativeLayout > </ RelativeLayout > |
但是@+id/variableLabelPart和@+id/variableValuePart的RelativeLayout,都不能设置weight。
【折腾过程】
1.搜:
relativelayout weight
参考:
android – RelativeLayout weight – Stack Overflow
其说是去改为LinearLayout,不是我要的。
2.算了,最后还是改为我之前的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | <? xml version = "1.0" encoding = "utf-8" ?> android:layout_width = "match_parent" android:layout_height = "match_parent" android:paddingLeft = "20sp" android:orientation = "horizontal" > < TextView android:id = "@+id/variableStatus" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_centerVertical = "true" android:layout_alignParentLeft = "true" android:background = "@drawable/status_question" /> < TextView android:id = "@+id/variableLabel" android:layout_centerVertical = "true" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:gravity = "center" android:layout_toRightOf = "@id/variableStatus" android:paddingLeft = "5sp" /> < TextView android:id = "@+id/variableUnit" android:layout_centerVertical = "true" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:gravity = "center" android:layout_alignParentRight = "true" android:paddingLeft = "5sp" /> <!-- <TextView android:id="@+id/variableValue" android:layout_centerVertical="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/variableUnit" android:gravity="center" android:paddingLeft="5sp" /> --> < EditText android:id = "@+id/variableValue" android:layout_centerVertical = "true" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_toLeftOf = "@id/variableUnit" android:gravity = "center" android:paddingLeft = "5sp" android:enabled = "false" android:inputType = "text" /> </ RelativeLayout > |
【总结】
如果想要weight,还是改为LinearLayout吧,RelativeLayout真心不支持。。