Пользовательская панель прокрутки Android - программирование
Подтвердить что ты не робот

Пользовательская панель прокрутки Android

Как я могу сделать эту полосу прокрутки:

4b9b3361

Ответ 1

Чтобы изменить изображение большого пальца, вы можете просто создать следующий стиль и применить его к вашему ScrollView:

<style name="your_style_name">  
    <item name="android:scrollbarAlwaysDrawVerticalTrack">true</item>
    <item name="android:scrollbarStyle">outsideOverlay</item>
    <item name="android:scrollbars">vertical</item>
    <item name="android:fadeScrollbars">false</item>
    <item name="android:scrollbarThumbVertical">@drawable/scroller_thumb</item>
</style>

где scroller_thumb - это ваше собственное изображение для большого пальца скроллера.

также обратите внимание на следующие атрибуты:

  • "android: fadeScrollbars", для которого установлено значение false, чтобы сделать изображение большого пальца неизменным.
  • "android: scrollbarStyle", который установлен в значение outsideOverlay, чтобы сделать изображение большого пальца, нарисованное на "грани обзора и наложения", как указано здесь: android: scrollbarStyle

Теперь, чтобы поместить тонкую линию, которую вы хотите под скроллером, просто добавьте изображение, содержащее изображение линии, прямому дочернему элементу ScrollView (дочерний элемент RelativeLayout как прямой дочерний элемент для ScrollView позволит вам позиционировать изображение в правой части представления - так что это было бы моим выбором).

и что он.

Ответ 2

Настройка Android: scrollbarThumbVertical - не лучшее решение, оно растянет изображение большого пальца в соответствии с размером списка...

Вам лучше использовать android: fastScrollThumbDrawable

Вот пример:

<ListView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:fadeScrollbars="false"
    android:scrollbarAlwaysDrawVerticalTrack="true"
    android:scrollbarSize="0dip"
    android:scrollbarStyle="outsideInset"
    android:fastScrollAlwaysVisible="true"
    android:fastScrollEnabled="false"
    android:scrollbars="vertical" />

Затем в файле styles.xml AppTheme вы добавляете

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:fastScrollThumbDrawable">@drawable/scroller_style</item>
</style>

а в папке res/drawable вы создаете файл: scroller_style.xml с содержимым

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/scroller_active" android:state_pressed="true"/>
    <item android:drawable="@drawable/scroller"/>

</selector>

где скроллер - это изображение большого пальца, а scroller_active - ваше активное изображение большого пальца руки (необязательно)

Ответ 3

Этот прекрасный пример поможет вам в решении.

Я выбрал основные части для быстрого использования. если кому-то нужна дополнительная информация, проверьте полную статью.

Вертикальная композиция для прокрутки в ScrollBar

Создайте новый файл res/drawable/scrollbar_vertical_track.xml и скопируйте в него следующий контент. Этот файл определяет форму для полосы прокрутки.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <gradient
        android:angle="0"
        android:endColor="#9BA3C5"
        android:startColor="#8388A4" />

    <corners android:radius="6dp" />

</shape>

Вертикальный ScrollBar Thumb Drawable

Создайте новый файл res/drawable/scrollbar_vertical_thumb.xml и скопируйте в него следующий контент. Этот файл определяет форму для большого пальца прокрутки.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <gradient
        android:angle="0"
        android:endColor="#005A87"
        android:startColor="#007AB8" />

    <corners android:radius="6dp" />

</shape>
  • Эти drawable позволяют установить форму, цвет дорожки и большого пальца полоса прокрутки соответственно.
  • Здесь мы создаем закругленный трек и большой палец полосу прокрутки, указав радиус для атрибута.

styles.xml

Создайте следующий стиль и примените его к ScrollView. Откройте res/values/styles.xml и отредактируйте содержимое, как показано ниже.

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="scrollbar_shape_style">
        <item name="android:scrollbarAlwaysDrawVerticalTrack">true</item>
        <item name="android:scrollbarStyle">outsideOverlay</item>
        <item name="android:scrollbars">vertical</item>
        <item name="android:fadeScrollbars">true</item>
        <item name="android:scrollbarThumbVertical">@drawable/scrollbar_vertical_thumb</item>
        <item name="android:scrollbarTrackVertical">@drawable/scrollbar_vertical_track</item>
        <item name="android:scrollbarSize">12dp</item>
        <item name="android:scrollbarFadeDuration">2000</item>
        <item name="android:scrollbarDefaultDelayBeforeFade">1000</item>
    </style>

</resources>

Применение пользовательского стиля к ScrollView:

Мы применяем стиль scrollbar_shape_style к ScrollView, который использует форму, пригодную для рисования.

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/scrollbar_shape_style"
    ...
       >

...
</ScrollView>