Android:具有两个可滚动视图的大小相等的布局

Android: equal sized layout with two scrollable views

我需要一个固定区域的布局,其中包含

和包含

的可变区域(取决于设备的大小)

可变区域中的两个视图应共享屏幕的其余部分,以一种垂直方向相等的方式 space。

我做错了什么?

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
>
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <Spinner
            android:id="@+id/mainSpinner1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
        />

        <CheckBox android:id="@+id/mainCheckbox1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/checkbox1"
        />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
        >
            <Button
                android:id="@+id/mainButton1"
                android:text="@string/mainButton1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="onReadDBClick"
            />

            <Button
                android:id="@+id/mainButton2"
                android:text="@string/mainButton2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="onCreateDBClick"
            />
        </LinearLayout>

        <ScrollView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <ListView
                android:id="@+id/mainListView1"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
            />
        </ScrollView>

                <TextView
                    android:id="@+id/mainTextView1"
                    android:text="@string/hello_world"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:maxLines="2000"
                    android:scrollbars="vertical"
                    android:layout_weight="5"
                    />
    </LinearLayout>
</ScrollView>

P.S.: 在我尝试了几次更改(我理解的那些...)之后,我玩了一下,因为我在两个小时内没有真正找到合适的东西...希望,我没有搞砸太多...

尝试:

   <LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <Spinner
                android:id="@+id/mainSpinner1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                />

            <CheckBox android:id="@+id/mainCheckbox1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/checkbox1"
                />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                >
                <Button
                    android:id="@+id/mainButton1"
                    android:text="@string/mainButton1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:onClick="onReadDBClick"
                    />

                <Button
                    android:id="@+id/mainButton2"
                    android:text="@string/mainButton2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:onClick="onCreateDBClick"
                    />
            </LinearLayout>
        </LinearLayout>

        <ScrollView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1">
            <ListView
                android:id="@+id/mainListView1"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                />
        </ScrollView>

        <TextView
            android:id="@+id/mainTextView1"
            android:text="@string/hello_world"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:maxLines="2000"
            android:scrollbars="vertical"
            />
    </LinearLayout>

起初。你不应该把 scrollview 放在 scrollview 里面。 ListView 也不应该在 scrollview 里面。 了解 RecyclerView 以及如何使用它代替 ListView。

类似这样的东西?:)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical"
    >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <Spinner
            android:id="@+id/mainSpinner1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />

        <CheckBox
            android:id="@+id/mainCheckbox1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/checkbox1"
            />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            >

            <Button
                android:id="@+id/mainButton1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onReadDBClick"
                android:text="@string/mainButton1"
                />

            <Button
                android:id="@+id/mainButton2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="onCreateDBClick"
                android:text="@string/mainButton2"
                />
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <ListView
            android:id="@+id/mainListView1"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"
            />


        <TextView
            android:id="@+id/mainTextView1"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:maxLines="2000"
            android:scrollbars="vertical"
            android:text="@string/hello_world"
            />
    </LinearLayout>

</LinearLayout>