在Sony Ericsson上使用权重= x的LinearLayout无法正常工作(使用lib Holo Everywhere)

时间:2013-07-25 08:14:59

标签: android xml android-layout android-linearlayout android-holo-everywhere

我有这样的布局,“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>

<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>

为此,我添加了。它适用于除旧款索尼爱立信设备之外的所有设备。在SE Experia设备上,ScrollView不会根据需要进行扩展。它的高度只有~50dp,因为我需要至少150dp。

我也在使用HoloEverywhere lib。

如何让HoloEverywhere LinearLayout不要忽略android:layout_weight="1"属性?

2 个答案:

答案 0 :(得分: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.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>

现在正在按预期扩展。 :)

答案 1 :(得分:0)

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