android android-actionbar android-actionbar-tabs

android - Deshabilitar el indicador de la pestaña ActionBar mediante programación



android-actionbar android-actionbar-tabs (2)

¿Es posible desactivar el indicador de pestañas usando código programáticamente / Java?
Así es como estoy configurando otras propiedades de las pestañas:

actionBar = getSupportActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); actionBar.setHomeButtonEnabled(false); actionBar.setDisplayShowTitleEnabled(false); actionBar.setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#FFFFFF")));

Métodos ActionBar.TabListener :

@Override public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { try { if (tab.getPosition() == 4) { listFlyout = null; pwindo = null; items.clear(); addFlyout(); } else if (tab.getPosition() == 0) { tab.getIcon().setColorFilter(Color.parseColor("#10A595"), PorterDuff.Mode.SRC_IN); selectedTabIndex = tab.getPosition(); } else if (tab.getPosition() == 1) { tab.getIcon().setColorFilter(Color.parseColor("#F25252"), PorterDuff.Mode.SRC_IN); selectedTabIndex = tab.getPosition(); } else if (tab.getPosition() == 2) { tab.getIcon().setColorFilter(Color.DKGRAY, PorterDuff.Mode.SRC_IN); selectedTabIndex = tab.getPosition(); } else if (tab.getPosition() == 3) { tab.getIcon().setColorFilter(Color.DKGRAY, PorterDuff.Mode.SRC_IN); selectedTabIndex = tab.getPosition(); } } catch (Exception ex) { ex.printStackTrace(); } } @Override public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { tab.getIcon().setColorFilter(Color.GRAY, PorterDuff.Mode.SRC_IN); } @Override public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { if (tab.getPosition() == 4) { listFlyout = null; pwindo = null; items.clear(); addFlyout(); } }

Pero obtengo un indicador de pestaña verde que no quiero.


Si yo fuera tú, no usaría la pestaña ActionBar porque está en desuso de la API 21 y tampoco funciona en las tabletas, como es de esperar. yo usaría

1) PagerSlidingTabStrip

2) SlidingTabsBasic

(Otra versión de SlidingTabsBasic es aquí debes agregar SlidingTabLayout.java y SlidingTabStrip.java )

Si desea utilizar PagerSlidingTabStrip , puede usar pstsIndicatorColor o

public void setIndicatorColor(int indicatorColor) public void setIndicatorColorResource(int resId)

de la biblioteca.

Si desea utilizar SlidingTabsBasic , puede usar

SlidingTabLayout tabs = (SlidingTabLayout) findViewById(R.id.tabs); tabs.setViewPager(viewpager); tabs.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() { @Override public int getIndicatorColor(int position) { return getResources().getColor(R.color.white); } @Override public int getDividerColor(int position) { return getResources().getColor(R.color.white); } });


Aplicar el estilo como se responde aquí también deshabilitó el indicador. Una solución me solucionó dos problemas :)