Android 以编程方式禁用ActionBar选项卡指示器

Android 以编程方式禁用ActionBar选项卡指示器,android,android-actionbar,android-actionbar-tabs,Android,Android Actionbar,Android Actionbar Tabs,是否可以使用编程/Java代码禁用选项卡指示器? 以下是我设置其他选项卡属性的方式: actionBar = getSupportActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); actionBar.setHomeButtonEnabled(false); actionBar.setDisplayShowTitleEnabled(false); actionBar.setStackedBackgro

是否可以使用编程/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();
        }
    }
但是我得到了我不想要的绿色标签指示器


如果我是你,我就不会使用
ActionBar
选项卡,因为它在api 21中已被弃用,而且它也不能像你预期的那样在平板电脑上工作。我会用

(一)

(二)

(SlidingAbsBasic的另一个版本是您必须添加
SlidingAblayout.java
SlidingAbstrip.java

如果要使用,可以使用
pstsIndicatorColor

public void setIndicatorColor(int indicatorColor) 

public void setIndicatorColorResource(int resId)
从图书馆

如果要使用
滑动Abbasic
,可以使用

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

应用回答的样式也会禁用指示器。一个解决方案为我解决了两个问题:)

请提供您的setOnPageChangeListener()代码。@Avishedas:为什么需要这样做?不过我确实实现了ActionBar.TabListener。我已经更新了我的问题,您可以在其中查看。在这个listner方法中,有一个函数调用了onPageSelected。这个函数是handleit@AvishekDas:您能解释一下setOnPageChangeListener()将如何处理此问题吗?请查看您提到的帖子():我不想使用样式禁用选项卡指示器。无论如何,如果你不想悬赏,你可以指定你的问题,然后寻求帮助。@mmlooloo:我更改样式时甚至没有考虑解决这个问题。我改变它来检查其他问题,甚至这个问题也得到了解决。我没有奖励你,因为我不能使用第三方课程。不过,关于我不使用样式的问题,你是对的。所以我现在编辑了它。