android中有百分比宽度的选项吗?我试图将我的2行设置为40%并将文本设置为20%,但我真的不知道如何实现这一目标。我现在有固定的宽度。
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:weightSum="1">
<ImageView
android:layout_width="wrap_content"
android:layout_height="14dp"
android:id="@+id/line2"
android:background="@drawable/line"
android:layout_gravity="center_horizontal"
android:contentDescription="@string/line" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="@string/or"
android:textAllCaps="true"
android:gravity="center"
android:id="@+id/textView"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/imageView"
android:background="@drawable/line"
android:layout_gravity="center_horizontal"
android:layout_weight="2.18"
android:contentDescription="@string/line" />
</LinearLayout>
这是来自android studio的屏幕,以便更好地理解:screen
答案 0 :(得分:1)
您可以使用属性android:layout_weight
。
像这样:
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:weightSum="5" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="14dp"
android:id="@+id/line2"
android:background="@drawable/line"
android:layout_gravity="center_horizontal"
android:layout_weight="2"
android:contentDescription="@string/line" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="@string/or"
android:textAllCaps="true"
android:gravity="center"
android:layout_weight="1"
android:id="@+id/textView"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/imageView"
android:background="@drawable/line"
android:layout_gravity="center_horizontal"
android:layout_weight="2"
android:contentDescription="@string/line" />
</LinearLayout>
请注意,我已为LinearLayout
下的每个元素添加了权重,并且我已将android:weightSum
中的LinearLayout
更改为5。
答案 1 :(得分:0)
尝试这样,
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:weightSum="1">
<ImageView
android:layout_width="0dp"
android:layout_height="14dp"
android:id="@+id/line2"
android:background="@drawable/line"
android:layout_gravity="center_horizontal"
android:layout_weight="0.40"
android:contentDescription="@string/line" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="@string/or"
android:textAllCaps="true"
android:gravity="center"
android:layout_weight="0.20"
android:id="@+id/textView"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />
<ImageView
android:layout_width="0dp"
android:layout_height="14dp"
android:id="@+id/imageView"
android:background="@drawable/line"
android:layout_gravity="center_horizontal"
android:layout_weight="0.40"
android:contentDescription="@string/line" />
</LinearLayout>