Подтвердить что ты не робот

Макет Макет не работает внутри ScrollView

Я хочу назначить веса макета нескольким элементам внутри LinearLayout внутри ScrollView. Однако ScrollView игнорирует LinearLayout weightSum.

Моя цель состоит в том, чтобы разделить макет с весами 2, 1, 1 (на общую сумму 4), но это не работает должным образом внутри 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>
4b9b3361

Ответ 1

Я столкнулся с этой проблемой раньше. Просто используйте 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" >

Ответ 2

Это не сработает, как вы это сделали. Детский вид ScrollView должен быть установлен на wrap_content. Если вы установите его на fill_parent, он заполнит область ScrollView и никогда не будет прокручиваться, потому что она не будет больше, чем ScrollView.

Идея layout_weight заключается в пропорциональном заполнении определенной области.

Вы должны установить все дочерние LinearLayouts layout_height либо на wrap_content, либо на определенный размер (в dp), а родительский LinearLayout layout_height to wrap_content

Как сказано, вам нужно удалить дополнительные

XMLNS: андроид = "http://schemas.android.com/apk/res/android"

если это не корневой (первый) элемент макета.