【背景】
想要在android中一个RelativeLayout中设置对应的weight,以便达到自动适应屏幕宽度的效果。
想要如下设置:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 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.算了,最后还是改为我之前的:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 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真心不支持。。