Как установить отступ для вертикальной полосы прокрутки от правого края в ListView?

Для платформы Android:

Мне нужно поместить поле справа от вертикальной полосы прокрутки в списке (это настраивается). Пожалуйста, смотрите прикрепленное изображение. Полоса прокрутки по умолчанию прилипает к крайней правой части списка. Изображение

Нужна твоя рука. Спасибо.


person Community    schedule 12.05.2011    source источник
comment
Для какой платформы/графического интерфейса это предназначено? Многие из них имеют вертикальные полосы прокрутки и ListViews.   -  person Cody Gray    schedule 12.05.2011
comment
Это для платформы Android 2.1 и выше.   -  person    schedule 12.05.2011


Ответы (3)


См. документацию по атрибуту 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">
    .
    .
    .
person Ilya Saunkin    schedule 18.05.2011
comment
Почему бы не заполнять непосредственно в ListView без использования обертки? - person Gil Vegliach; 20.11.2014
comment
@ Ответ Майкла намного лучше. Пожалуйста, просмотрите его и рассмотрите возможность изменения принятого ответа. - person aaaidan; 20.10.2017
comment
Примечание: если вам нужно обратное (сделать так, чтобы полоса прокрутки тяготела вправо) и у вас есть paddingRight и clipToPadding = false, используйте outsideOverlay - person Johnny Five; 01.10.2019

Если вы заботитесь о своем дизайне и хотите применить стиль во всем мире, используйте это.


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>

Все остальные ответы были созданы разработчиками, а не такими дизайнерами, как я.

Результат

Хорошая полоса прокрутки

person Michael    schedule 25.02.2015
comment
Это то, что я искал! Tnx Майкл! - person Michael van der Horst; 21.07.2016
comment
Извините, я не мог дать больше одного голоса. Этот ответ заслуживает 100. - person X09; 10.04.2017

Попробуйте включить быструю прокрутку, в большинстве случаев она работает:

<ListView
    android:id="@+id/chapter_list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:fastScrollEnabled="true"/>
person Zahid Khan    schedule 08.07.2017
comment
Это не отвечает на вопрос. - person nyconing; 08.04.2019