我想在我的UI初始化中将LinearLayout
的宽度设置为屏幕宽度动态的一半。我有一个RelativeLayout
缠绕LinearLayout
,层次结构如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:id="@+id/left_linear_layout"
android:layout_alignParentLeft="true"
android:layout_height="fill_parent"
android:layout_width="155dp" <!--want to set this to 1/2 screen width-->
android:orientation="vertical">
...
</LinearLayout>
<LinearLayout
android:id="@+id/right_linear_layout"
android:layout_alignParentRight="true"
android:layout_height="fill_parent"
android:layout_width="385dp"><!--want to set this relative to screen width as well-->
....
</LinearLayout>
</RelativeLayout>
或者,可以使用View
代替Layout
解决此问题吗?任何建议表示赞赏!
答案 0 :(得分:0)
您可以简单地使用LinearLayout作为顶级布局,然后设置两个子布局的权重。
答案 1 :(得分:0)
您可以使用layout_weight
执行此操作,但您需要为填充添加一些不可见的视图。例如,以下内容将使您的顶部面板成为屏幕宽度的一半:
<RelativeLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:id="@+id/left_linear_layout"
android:layout_alignParentLeft="true"
android:layout_height="fill_parent"
android:layout_width="0dp"
android:layout_weight="1"
android:orientation="vertical"
>
...
</LinearLayout>
<!-- need this view to fill the other half of the screen -->
<View
android:id="@+id/spacer"
android:layout_toRightOf="@id/left_linear_layout"
android:layout_height="fill_parent"
android:layout_width="0dp"
android:layout_weight="1"
/>
....
</RelativeLayout>
每个视图占用的金额为layout_weight/total_layout_weight
。在这种情况下,total_layout_weight = 1+1 = 2
并且每个视图的layout_weight
都为1,因此每个视图都会占用屏幕的1/2
。