Отключить индикатор вкладки ActionBar программно

Можно ли отключить индикатор вкладки с помощью программного / Java-кода?
Вот как я устанавливаю другие свойства вкладки:

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

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();
        }
    }

Но я получаю зеленый индикатор табуляции, который мне не нужен.

2 ответа

Решение

Применение стиля в соответствии с ответом здесь также отключило индикатор. Одно решение исправило две проблемы для меня:)

На вашем месте я бы не использовал ActionBar Tab, потому что он устарел от API 21, а также не работает на планшетах, как вы можете ожидать. я хотел бы использовать

1) https://github.com/astuetz/PagerSlidingTabStrip

2) SlidingTabsBasic

(другая версия SlidingTabsBasic находится здесь, вы должны добавить SlidingTabLayout.java а также SlidingTabStrip.java)

Если вы хотите использовать https://github.com/astuetz/PagerSlidingTabStrip, вы можете использовать pstsIndicatorColor или же

public void setIndicatorColor(int indicatorColor) 

public void setIndicatorColorResource(int resId)

из библиотеки.

Если вы хотите использовать SlidingTabsBasic ты можешь использовать

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);
    }
});
Другие вопросы по тегам