我正在 Android 中制作一个布局(XML 文件),它有两个子视图(一个在屏幕右侧,一个在左侧)。我希望右边的视图占据一个预先确定的空间(以 dp 为单位)并让左边的视图占据所有剩余空间直到一个限制,此时它将停止扩展并且两个布局将只是随着屏幕变大,距离更远。
奇怪的是,如果我希望右侧的视图是扩展的视图,而左侧的视图是占用预设空间的视图,这将非常容易。如果您将每个视图设置为您想要的宽度(在水平线性布局中),如果两个视图都不适合,Android 将自动缩小左侧的一个。
我想在一个布局文件中执行此操作;此布局已经为 sw512dp-land 和 sw765dp-land 之间的显示器设计。
如果我能找到一种方法让 Android 缩小左侧的布局(当布局都不能适应指定的大小时),下面的代码将起作用。但默认情况下,系统会先收缩右边的布局。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<RelativeLayout
android:id="@+id/left"
android:layout_width="150dip"
android:layout_height="fill_parent"
android:background="@color/red" >
</RelativeLayout>
<LinearLayout
android:id="@+id/right"
android:layout_width="100dip"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@color/green" >
</LinearLayout>
如果我不需要左侧的布局在某个点停止扩展,则此代码(来自@Lokesh)将起作用。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/left"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_toLeftOf="@+id/right"
android:background="@color/red" >
</LinearLayout>
<LinearLayout
android:id="@+id/right"
android:layout_width="100dip"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@color/green" >
</LinearLayout>
很高兴知道是否有人认为这是不可能的,所以我可以采取务实的方式或改变我的布局方法。
谢谢!