Показать весь ListView в LinearLayout - PullRequest
1 голос
/ 19 ноября 2011

Я пытаюсь поместить ListView под WebView, для этого я использую следующий XML-код:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg"
    android:orientation="vertical"
    android:scrollbars="vertical" >

    <LinearLayout
        android:id="@+id/main_layout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <WebView
            android:id="@+id/content"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:cacheColorHint="#00000000"
            android:textColor="#FFDEC2" />

        <ListView
            android:id="@+id/comments"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent" >
        </ListView>
    </LinearLayout>

</ScrollView>

Код отображает содержимое WebView и ListViewправильно, но ListView имеет максимум примерно в 1,5 раза больше элемента ListView, поэтому отображается не весь список, а только первые элементы.

Я пробовал несколько комбинаций android:layout_height="fill_parent" и android:layout_height="wrap_content" в LinearLayout, WebView, ListView и окружающих ScrollView, ни один из них не работал.

1 Ответ

3 голосов
/ 19 ноября 2011

Вы должны использовать веса макета. Это способ использовать проценты для определения вашего макета.

В следующем примере ListView использует 60% пространства, а WebView 40%:

<LinearLayout
    android:id="@+id/main_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:weightSum="1.0" >

    <WebView
        android:id="@+id/content"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:cacheColorHint="#00000000"
        android:textColor="#FFDEC2"
        android:layout_weight=".40" />

    <ListView
        android:id="@+id/comments"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight=".60" >
    </ListView>
</LinearLayout>

Просто измените эти проценты на те, которые вы хотите.

...