Android: ListView не может получить полный layout_height в ScrollView


У меня есть два вопроса:

Получить динамическую высоту (fill_parent, match_parent) для моего ListView? Если я напишу "layout_height: fill_parent", это на самом деле не работает

Я могу получить решение без ScrollView, только с ListView? (Без ScrollView моя полоса прокрутки находится слишком далеко от нужного сайта.)

Встречает Робин

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="#e7e7e7">

<TextView
    android:id="@+id/date_header"
    android:layout_width="wrap_content"
    android:layout_height="30dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:background="#bfbfbf"
    android:gravity="center"
    android:text="05.07.2014"
    android:textAppearance="?android:attr/textAppearanceSmall" />

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_below="@+id/date_header"
    android:layout_centerHorizontal="true" >

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

        <ListView
            android:id="@+id/listView1"
            android:layout_width="match_parent"
            android:layout_height="431dp"
            android:divider="@android:color/transparent"
            android:dividerHeight="15dp"
            android:paddingBottom="20dp"
            android:paddingLeft="15dp"
            android:paddingRight="15dp"
            android:paddingTop="20dp"
            android:scrollbars="none" >

        </ListView>

    </LinearLayout>
</ScrollView>

1 ответ

Я думаю, что нет необходимости ScrollView:

Вы можете получить предупреждение при проектировании, как:

Вертикально прокручиваемый ScrollView не должен содержать другой вертикально прокручиваемый виджет (ListView)

Вы можете достичь своего дизайна, используя это также:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:background="#e7e7e7" >

    <TextView
        android:id="@+id/date_header"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="#bfbfbf"
        android:gravity="center"
        android:text="05.07.2014"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentBottom="true"
        android:layout_below="@+id/date_header"
        android:layout_marginTop="10dp"
        android:divider="@android:color/transparent"
        android:dividerHeight="15dp"
        android:scrollbars="none" >
    </ListView>

</RelativeLayout>
Другие вопросы по тегам