#android #listview #scrollbar #margin
#Android #listview #полоса прокрутки #поле
Вопрос:
Для платформы Android:
Мне нужно поместить поле с правой стороны вертикальной полосы прокрутки в listview (оно настраивается). Пожалуйста, посмотрите прикрепленное изображение. Полоса прокрутки по умолчанию находится в крайней правой части listview.
Нужна ваша помощь. Спасибо.
Комментарии:
1. Для какой платформы / GUI-фреймворка это? Многие из них имеют вертикальные полосы прокрутки и просмотр списка.
2. Это для платформы Android 2.1 и выше.
Ответ №1:
Если вы заботитесь о своем дизайне и хотите применить стиль глобально, используйте это.
res/values/styles.xml
<item name="android:scrollbarThumbVertical">@drawable/scrollbar</item>
res/drawable/scrollbar.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:right="4dp"> <!-- Your Margin -->
<shape>
<solid android:color="@color/red500" /> <!-- Your Color -->
<corners android:radius="2dp" /> <!-- Your Radius -->
<size android:width="4dp" /> <!-- Your Width -->
</shape>
</item>
</layer-list>
Все остальные ответы были созданы разработчиками, а не дизайнерами, такими как я.
Результат
Комментарии:
1. Это то, что я искал! Спасибо, Майкл!
2. Извините, я не смог дать более одного положительного отзыва. Этот ответ заслуживает 100.
Ответ №2:
Обратитесь к документации по android:scrollbarStyle
атрибуту View
. Стиль, который вы, вероятно, захотите использовать, это insideOverlay
(в сочетании с android:paddingRight
).
Что-то вроде
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:paddingRight="50dip">
<ListView
android:id="@ id/scrollable_table"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbarStyle="insideOverlay">
.
.
.
Комментарии:
1. Почему не использовать заполнение непосредственно в ListView без использования оболочки?
2. Ответ @Michael’s намного лучше. Пожалуйста, просмотрите это и рассмотрите возможность изменения принятого ответа.
3. Примечание: если вам нужно обратное (сделать полосу прокрутки смещенной вправо) и иметь
paddingRight
иclipToPadding = false
, используйтеoutsideOverlay
Ответ №3:
Попробуйте включить быструю прокрутку, она выполняет работу большую часть времени:
<ListView
android:id="@ id/chapter_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fastScrollEnabled="true"/>
Комментарии:
1. Это не отвечает на вопрос.