我正在尝试创建一个布局,其中我有一个固定大小的 ScrollView 隐藏在屏幕的右侧,然后 LinearLayout 填充剩余的屏幕空间。像这样:
<---------------------------LinearLayout---------------------------><----ScrollView---->
在 ScrollView 中是另一个 LinearLayout,我将 TextViews 动态添加到其中。这是我目前拥有的:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/chart"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#FF0000"
android:orientation="horizontal" >
</LinearLayout>
<ScrollView
android:layout_width="260dp"
android:layout_height="match_parent"
android:background="#0000FF"
android:scrollbars="vertical" >
<LinearLayout
android:id="@+id/meterList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#00FF00"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
</LinearLayout>
我读到将宽度设置为 0dp 并将重量设置为 1 应该让它填满屏幕的其余部分,但它会被 ScrollView 压扁,占据屏幕的 90%。奇怪的是,我在 ScrollView 中的 LinearLayout 只占用了其中一半的空间。因为我对它进行了颜色编码,所以它看起来像这样:
<--Red--><----------------Green----------------><----------------Blue---------------->
一旦一个视图被动态添加,所有的蓝色背景都应该像这样被覆盖:
<------------------------------Red------------------------------><-------Green------->
这些都没有任何意义……
编辑:因为这看起来很相关,所以我应该提到这个布局被我的片段夸大了。该片段然后附加到:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/clearPrefs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="DEBUG" >
</Button>
</LinearLayout>
<fragment
android:id="@+id/fragment_chart"
android:name="...GraphFragment"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
</LinearLayout>