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


TabWidget la pestaña actual del color de la línea inferior

Tengo un TabWidget para el que he habilitado y establecer el stripLeft y stripRight

 mTabHost.getTabWidget().setStripEnabled(true); mTabHost.getTabWidget().setRightStripDrawable(R.drawable.redline); mTabHost.getTabWidget().setLeftStripDrawable(R.drawable.redline); 

Como se puede ver en la imagen de abajo, esto no cambia el color de la línea inferior de la pestaña actualmente seleccionada (TAB 2).

  • ¿Cómo pasar el parámetro a un webservice usando ksoap2?
  • Cómo determinar el código C se compila para Android / NDK o iOS
  • Carga de Clase Personalizada en Dalvik con Gradle (Android New Build System)
  • La fábrica del convertidor de retroadaptación no puede acceder a GsonConverterFactory
  • Implementación de un borrador en una aplicación de dibujo de Android - pista negra y transparente
  • Cómo usar un ArrayAdapter en android de objetos personalizados
  • Introduzca aquí la descripción de la imagen

    ¿Cómo puedo cambiar el color de la línea de fondo de la pestaña actualmente seleccionada que está predeterminada en azul en este momento? (Supongo que el color azul se está estableciendo en el estilo AppTheme predeterminado en styles.xml .)

    Miré esta respuesta pero no dice cómo cambiar el color …

  • Editar texto que muestra el subrayado rojo en el texto
  • Comando ndk-build no se encuentra en el terminal de Ubuntu
  • Cómo actualizar SimpleAdapter en Android
  • Mapa de bits extraño con 1 Mb de Heap
  • Android ¿qué está mal con openFileOutput?
  • Actividad de Android ClassNotFoundException - probado todo
  • 8 Solutions collect form web for “TabWidget la pestaña actual del color de la línea inferior”

    El color del indicador de la pestaña se está ajustando mediante un selector que se puede dibujar y que se puede encontrar aquí y se ve así:

     <!-- AOSP copyright notice can be found at the above link --> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Non focused states --> <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_holo" /> <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_holo" /> <!-- Focused states --> <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_focused_holo" /> <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_focused_holo" /> <!-- Pressed --> <!-- Non focused states --> <item android:state_focused="false" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_holo" /> <item android:state_focused="false" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_holo" /> <!-- Focused states --> <item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_holo" /> <item android:state_focused="true" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_holo" /> </selector> 

    Los tirantes que usa el selector están todos coloreados en esa luz azul. Puede reemplazar esos elementos con sus propias versiones recolored. Los originales se parecen a esto (los originales son pequeños, enlaces incluidos):

    • Tab_unselected_holo Tab_unselected_holo
    • Tab_selected_holo Tab_selected_holo
    • Tab_unselected_focused_holo Tab_unselected_focused_holo
    • Tab_selected_focused_holo Tab_selected_focused_holo
    • Tab_unselected_pressed_holo Tab_unselected_pressed_holo
    • Tab_selected_pressed_holo Tab_selected_pressed_holo

    Usted querrá copiar el selector anterior en su propio proyecto, junto con los drawables. Entonces usted deseará recolorir los drawables a cualquier color que usted quisiera que fueran. A continuación, deseará configurar el selector como fondo para los indicadores de pestaña. Puedes hacerlo así (después de configurar las pestañas):

     TabHost host = (TabHost)view.findViewById(R.id.tab_host); TabWidget widget = host.getTabWidget(); for(int i = 0; i < widget.getChildCount(); i++) { View v = widget.getChildAt(i); // Look for the title view to ensure this is an indicator and not a divider. TextView tv = (TextView)v.findViewById(android.R.id.title); if(tv == null) { continue; } v.setBackgroundResource(R.drawable.your_tab_selector_drawable); } 

    Puede haber una manera más fácil de hacer esto mediante la configuración de su propio diseño de indicador de cliente con un selector de fondo, pero esto es lo que trabajó más fácil para mí.

    Así es como cambié mis pestañas,

     private void changetabs(TabWidget tabWidget) { // Change background for(int i=0; i < tabWidget.getChildCount(); i++) tabWidget.getChildAt(i).setBackgroundResource(R.drawable.tab_selector); } 

    Y mi tab_selector.xml

     <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Non focused states --> <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_holo" /> <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_holo" /> <!-- Focused states --> <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_focused_holo" /> <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_focused_holo" /> <!-- Pressed --> <!-- Non focused states --> <item android:state_focused="false" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_holo" /> <item android:state_focused="false" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_holo" /> <!-- Focused states --> <item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_holo" /> <item android:state_focused="true" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_holo" /> 

    Espero que ayude a alguien.

    Incase alguien se tropieza con él, hay una herramienta en línea para construir rápidamente el drawables (9 patch) para las pestañas. Sólo tienes que seleccionar el color y pulsar el botón Aquí tienes …

    Gracias a Jeff Gilfelt


    El generador de estilo de barra de acción de Android te permite crear fácilmente un estilo de barra de acción personalizada simple, atractivo y transparente para tu aplicación de Android. Generará todos los nueve elementos de parche necesarios, además de los estilos y estilos XML que se pueden copiar directamente en su proyecto.

    http://jgilfelt.github.io/android-actionbarstylegenerator/

    Puede utilizar app: tabIndicatorColor para este propósito. Cambiará el color de la línea del indicador de la pestaña seleccionada de acuerdo con su requerimiento.

     <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabIndicatorColor="@android:color/white" app:tabMode="fixed" /> 

    Puede utilizar un filtro,
    Esto se aplicará a la región que no es transparente

     tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).getBackground().setColorFilter(Color.RED, PorterDuff.Mode.MULTIPLY); 

    Una línea de código – sin necesidad de cambiar estados.

    El color de acento se utiliza de forma predeterminada como color de tabulación activo. Puede configurarlo / cambiarlo en el archivo style.xml :

     <style name="AppBaseTheme" parent="Theme.AppCompat.Light"> <item name="colorAccent">@color/myAccentColor</item> </style> 

    Mi manera de resolver este problema es usar setBackgroundResource. Primero, usted tiene que crear exactamente el mismo backgroud

    Line_label_1_pressed.xml

     <item android:top="-6dp" android:left="-6dp" android:right="-6dp"> <shape> <size android:height="50dp"/> <solid android:color="@android:color/transparent"/> <stroke android:color="@color/myColor" android:width="6dp"/> </shape> </item> 

    Line_label_1.xml

     <item> <shape> <solid android:color="@android:color/transparent" /> </shape> </item> 

    Y luego crear tab_selector.xml como sigue

     <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/line_label_1_pressed" android:state_selected="true"/> <item android:drawable="@drawable/line_label_1"/> 

    Entonces setbackgroudResource usando tab_selector.xml

     <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/tab_selector" android:gravity="center_horizontal|center_vertical" /> 

    Solo usa algo como

     tabHost.setSelectedTabIndicatorColor(Color.WHITE); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.