Este es mi código en la actividad principal.
public class FilterActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_filter);
// Get the ViewPager and set it's PagerAdapter so that it can display items
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
PageAdapter pageAdapter = new PageAdapter(getSupportFragmentManager(), FilterActivity.this);
viewPager.setAdapter(pageAdapter);
// Give the TabLayout the ViewPager
final TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
tabLayout.setupWithViewPager(viewPager);
}
}
Y este es mi código en XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/app_bar"
layout="@layout/app_bar">
</include>
<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="fill_parent"
style="@style/MyCustomTabLayout"
android:layout_height="48dp"/>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="1"
android:background="@android:color/white" />
</LinearLayout>
Quiero cambiar el color de fondo de una pestaña cuando está seleccionada
android
android-tabs
android-tablayout
Joel Lara
fuente
fuente
tabLayout.setBackgroundColor(colorInt)
. Si lo necesita para cada pestaña, puede extraer los elementos secundarios de su TabLayoutPuedes probar esto:
En su archivo xml de fondo:
fuente
Agregar atributo en xml:
Y cree en la carpeta dibujable, tab_color_selector.xml
fuente
¿Has probado a comprobar la API? ?
Deberá crear un oyente para el
OnTabSelectedListener
evento, luego, cuando un usuario seleccione cualquier pestaña, debe verificar si es la correcta, luego cambiar el color de fondo usandotabLayout.setBackgroundColor(int color)
, o si no es la pestaña correcta, asegúrese de volver a cambiar a la color normal de nuevo con el mismo método.fuente
android:background=FF0000
Puede tenerlo en xml.
fuente
Como encontré la mejor y adecuada opción para mí y también funcionará con animación.
Puedes usarlo tú
indicator
mismo como fondo.Puede configurar el
app:tabIndicatorGravity="stretch"
atributo para usarlo como fondo.Ejemplo:
Espero que te ayude.
fuente
app:tabIndicatorColor
@MindRoasterMirPuede cambiar el color de fondo o de ondulación de cada pestaña de esta manera:
fuente
Después de jugar un poco, así es como obtuve el aspecto deseado (al menos en el emulador) y mantiene el efecto dominó.
Y el
@drawable/tab_selector
:FYI: Esto es lo que mostró el emulador antes de agregar el
color
argumento a@drawable/tab_selector
:fuente
Puede cambiar el color de fondo de la pestaña con este atributo
fuente
Una de las soluciones más simples es cambiar colorPrimary del archivo colors.xml.
fuente