0

我有这样的布局,“scrolling_container”占据了所有可用空间,但不超过其内部内容所需的空间:

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

        <ImageView
            android:id="@+id/fancy_image"
            android:layout_height="185dp"
            android:layout_width="match_parent"
            />

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

            <RelativeLayout
                android:layout_height="wrap_content"
                android:layout_width="match_parent"
                >
                ...

            </RelativeLayout>
        </ScrollView>

        <LinearLayout
            android:id="@+id/bottom_buttons"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            >
            ...
        </LinearLayout>
    </LinearLayout>

为了实现这一点,我添加了android:layout_weight="1". 它可以在所有设备上完美运行,除了旧的索尼爱立信设备。在 SE Experia 设备上,ScrollView 不会根据需要展开。它的高度只有 ~50dp,而我至少需要 150dp。

我也在使用 HoloEverywhere 库。

任何想法如何使 HoloEverywhere LinearLayout 不忽略android:layout_weight="1"属性?

4

2 回答 2

1

我发现的解决方案之一是使用 RelativeLayout,但它并不总是合适的。在这种情况下,我不能使用RelativeLayout,所以我通过添加android.widget.到使用股票LinearLayout实现LinearLayout

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

        <ImageView
            android:id="@+id/fancy_image"
            android:layout_height="185dp"
            android:layout_width="match_parent"
            />

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

            <RelativeLayout
                android:layout_height="wrap_content"
                android:layout_width="match_parent"
                >
                ...

            </RelativeLayout>
        </ScrollView>

        <LinearLayout
            android:id="@+id/bottom_buttons"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            >
            ...
        </LinearLayout>
    </android.widget.LinearLayout>

现在android:id="@+id/scrolling_container"正在按预期扩展。:)

于 2013-07-25T08:14:58.843 回答
0

Github 中有一个未解决的问题:https ://github.com/Prototik/HoloEverywhere/issues/543

于 2013-07-25T09:48:12.877 回答