Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Color de la barra de desplazamiento en RecyclerView

¿Cómo puedo cambiar el color de mi barra de desplazamiento en un recyclerView?

Tengo la barra de desplazamiento pero quiero cambiar su color. Mi recyclerView es así:

  • Accede a la tarjeta SIM con una aplicación de Android?
  • Detectar la desconexión desde un punto de acceso WiFi
  • No se puede resolver el método 'show (android.support.v4.app.FragmentManager, java.lang.String)
  • ¿Cómo puedo enviar los datos de resultado del Receptor de Broadcast a la Actividad
  • Redimensionar la imagen eficiente de la memoria en Android
  • ¿Cómo se formatea la fecha y la hora en Android?
  • <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/recyclerView" android:layout_below="@id/my_toolbar" android:layout_above="@+id/progressBar" android:scrollbars="vertical" /> 

  • ¿Cómo puedo implementar la barra de acción personalizada con botones personalizados en Android?
  • ¿Cómo obtener los registros de fallos de Android?
  • ¿Cómo recuperar datos de la base de datos de firebase que está teniendo matriz anidada y estructura de objetos?
  • Problemas con AdapterView y addView
  • ¿Es posible permitir al usuario la selección múltiple de archivos en el marco de acceso de almacenamiento ..?
  • Android Webview método shouldOverrideUrlLoading
  • 3 Solutions collect form web for “Color de la barra de desplazamiento en RecyclerView”

    Puede hacer esto incluyendo la siguiente línea de código en su Recyclerview

    android:scrollbarThumbVertical="@drawable/yoursdrawablefile

    El archivo dibujable en mi caso es:

     <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:startColor="#000" android:endColor="#000" android:angle="45"/> <corners android:radius="6dp" /> </shape> 

    En caso de que desee seguir diseñando sus barras de desplazamiento, cree dos archivos de recursos dibujables en su carpeta dibujable como 1. scrollbar_track y 2. scrollbar_thumb

    Scrollbar_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.xml

     <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <gradient android:angle="0" android:endColor="#b20111" android:startColor="#cf1d2d" /> <corners android:radius="6dp" /> </shape> 

    Ahora, cree un estilo llamado scrollbar_style en su archivo styles.xml como:

     <style name="scrollbar_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_thumb</item> <item name="android:scrollbarTrackVertical">@drawable/scrollbar_track</item> <item name="android:scrollbarSize">8dp</item> <item name="android:scrollbarFadeDuration">800</item> <item name="android:scrollbarDefaultDelayBeforeFade">500</item> </style> 

    Finalmente, para aplicar este estilo a la barra de desplazamiento en su recyclerview, agregue
    style="@style/scrollbar_style"
    A su recyclerview.

    En tu caso:

     <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/recyclerView" style="@style/scrollbar_style" android:layout_below="@id/my_toolbar" android:layout_above="@+id/progressBar" android:scrollbars="vertical" /> 

    Si necesita cambiar el color en tiempo de ejecución, esta es la forma.

     import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.support.annotation.ColorInt; import android.support.v7.widget.RecyclerView; import android.util.AttributeSet; /** * Created on 22.3.2016. * * @author Bojan Kseneman * @description A recycler view that will draw the scroll bar with a different color */ public class CustomScrollBarRecyclerView extends RecyclerView { private int scrollBarColor = Color.RED; public CustomScrollBarRecyclerView(Context context) { super(context); } public CustomScrollBarRecyclerView(Context context, AttributeSet attrs) { super(context, attrs); } public CustomScrollBarRecyclerView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public void setScrollBarColor(@ColorInt int scrollBarColor) { this.scrollBarColor = scrollBarColor; } /** * Called by Android {@link android.view.View#onDrawScrollBars(Canvas)} **/ protected void onDrawHorizontalScrollBar(Canvas canvas, Drawable scrollBar, int l, int t, int r, int b) { scrollBar.setColorFilter(scrollBarColor, PorterDuff.Mode.SRC_ATOP); scrollBar.setBounds(l, t, r, b); scrollBar.draw(canvas); } /** * Called by Android {@link android.view.View#onDrawScrollBars(Canvas)} **/ protected void onDrawVerticalScrollBar(Canvas canvas, Drawable scrollBar, int l, int t, int r, int b) { scrollBar.setColorFilter(scrollBarColor, PorterDuff.Mode.SRC_ATOP); scrollBar.setBounds(l, t, r, b); scrollBar.draw(canvas); } } 

    Estos métodos se definen en la clase View, por lo que el mismo principio debería funcionar con otras vistas como ScrollView y ListView.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.