#android #listview #scrollbar #scrollview #fill-parent
#Android #listview #полоса прокрутки #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. Почему вы помещаете ListView в ScrollView? это определенно плохая практика . ListView прокручивается сам по себе…
2. Вы также можете избежать использования LinearLayout и установить высоту ListView равной match_parent.
3. Нет необходимости
ScrollView
4.чтобы устранить проблему с заполнением полосы прокрутки, используйте:
android:clipToPadding="false"
иandroid:scrollbarStyle="outsideOverlay"
plus.google.com/ AndroidDevelopers/posts/LpAA7q4jw9M
Ответ №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>
Комментарии:
1. вид заголовка, вероятно, должен быть в новом XML-файле, и используйте
addHeaderView
для его настройки.2. @LordRaydenMK Нет, вам не нужно использовать
addHeaderView
(noraddFooterView
). Если у вас есть дизайн, которыйalready includes
содержит верхний (и / или нижний колонтитул).