53

LinearLayoutの内部にある複数のアイテムにレイアウトの重みを割り当てたいと考えていScrollViewます。ただし、 は をScrollView無視しLinearLayout weightSumます。

私の目標は、レイアウトを 2、1、1 (合計 4) の重みで分割することですが、これは a 内で適切に機能しませんScrollView

このレイアウトの問題を解決するにはどうすればよいですか?

main.xml

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" 
        android:weightSum="4">

        <LinearLayout android:id="@+id/logo"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" 
            android:layout_weight="2"
            android:background="#FFFFFF" />

        <LinearLayout android:id="@+id/logo1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" 
            android:layout_weight="1"
            android:background="#000000" />


        <LinearLayout android:id="@+id/logobutton"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" 
            android:layout_weight="1" 
            android:background="#4B4B4B" />

    </LinearLayout>
</ScrollView>
4

5 に答える 5

167

私は以前にこの問題に直面したことがあります。android:fillViewport="true"ScrollView で 使用するだけで、画面いっぱいになります。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true" >
于 2012-04-25T09:12:49.873 に答える
3

あなたがやったように、これはうまくいきません。ScrollViewの子ビューはに設定する必要がありますwrap_content。に設定すると、 ScrollViewより大きくならないため、 ScrollViewfill_parentの領域を埋めてスクロールしません。

のアイデアはlayout_weight、特定の領域を比例的に埋めることです。

すべての子LinearLayouts layout_heightwrap_content特定のサイズ (dp) に設定し、親LinearLayout layout_heightwrap_content

前述のように、追加を削除する必要があります

xmlns:android="http://schemas.android.com/apk/res/android"

レイアウトのルート (最初の) 要素でない場合。

于 2012-04-25T09:08:17.853 に答える