我希望有两个相邻的视图,第一个是固定大小,第二个是与第一个相邻的视图,它使用剩余的空间。
我可以使用LinearLayout
和权重轻松完成此操作,但我想避免“嵌套权重对性能不利”问题。
是否有其他布局类型可以实现等效?如果是这样,请提供一个例子。
答案 0 :(得分:3)
RelativeLayout
可以做你想要的,例如:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/button1"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="Button"
android:background="#99cc00" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/button1"
android:text="Button"
android:background="#0077cc"/>
</RelativeLayout>
第一个Button
宽度为200dp,第二个将伸展以填充父级剩余宽度。
您还可以使用RelativeLayout
分割相同大小的两个视图,以避免在某些布局上使用双重权重。
答案 1 :(得分:2)
我相信这可以通过RelativeLayout来完成。例如:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/button"
android:layout_width="100dp"
android:layout_height="match_parent"
android:layout_alignParentLeft="true" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_toRightOf="@id/button">
...
</LinearLayout>
</RelativeLayout>
答案 2 :(得分:-1)
你可以尝试
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<Button
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="view with fixed size " />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="view with remaining space" />
</LinearLayout>
这是权重在LinearLayout中的工作原理:
At first, it will deduct the fixed dimension, then according to the weight, divide the available space, assign to the views which specify the weight attribute