Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在android中更改自定义actionbar背景颜色_Java_Android_Tabs_Android Actionbar - Fatal编程技术网

Java 无法在android中更改自定义actionbar背景颜色

Java 无法在android中更改自定义actionbar背景颜色,java,android,tabs,android-actionbar,Java,Android,Tabs,Android Actionbar,我正在创建一个android应用程序,在其中一个活动中,我在actionbar的帮助下显示选项卡,因此我必须更改actionbar的背景色。但每当我试图改变背景颜色时,它将显示白色背景或黑色背景。那么,如何修改动作栏以更改其背景色呢 下面是我的活动代码:- public class SavedRecord extends FragmentActivity implements ActionBar.TabListener{ private ActionBar actionBar;

我正在创建一个android应用程序,在其中一个活动中,我在actionbar的帮助下显示选项卡,因此我必须更改actionbar的背景色。但每当我试图改变背景颜色时,它将显示白色背景或黑色背景。那么,如何修改动作栏以更改其背景色呢

下面是我的活动代码:-

public class SavedRecord extends FragmentActivity implements ActionBar.TabListener{

    private ActionBar actionBar;
    private ViewPager viewPager;
    private TabsPagerAdapter mAdapter;

    String[] tabs = {"Audio","Video"};

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.saved_record);

        //initialization
        actionBar = getActionBar();
        viewPager = (ViewPager) findViewById(R.id.view_pager);
        mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

        viewPager.setAdapter(mAdapter);
        actionBar.setHomeButtonEnabled(false);
        actionBar.setIcon(null);
        actionBar.setDisplayUseLogoEnabled(false);
        actionBar.setTitle("Saved Record");
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#ff7043"));
        actionBar.setStackedBackgroundDrawable(colorDrawable);
        for (String tab_name:tabs){
            actionBar.addTab(actionBar.newTab().setText(tab_name).setTabListener(this));
        }

        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }

            @Override
            public void onPageSelected(int position) {
                actionBar.setSelectedNavigationItem(position);
            }

            @Override
            public void onPageScrollStateChanged(int state) {
            }
        });
    }

    @Override
    public void onTabSelected(ActionBar.Tab tab, android.app.FragmentTransaction ft) {
        viewPager.setCurrentItem(tab.getPosition());
    }

    @Override
    public void onTabUnselected(ActionBar.Tab tab, android.app.FragmentTransaction ft) {

    }

    @Override
    public void onTabReselected(ActionBar.Tab tab, android.app.FragmentTransaction ft) {

    }
}
以及活动的屏幕截图:-

public class SavedRecord extends FragmentActivity implements ActionBar.TabListener{

    private ActionBar actionBar;
    private ViewPager viewPager;
    private TabsPagerAdapter mAdapter;

    String[] tabs = {"Audio","Video"};

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.saved_record);

        //initialization
        actionBar = getActionBar();
        viewPager = (ViewPager) findViewById(R.id.view_pager);
        mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

        viewPager.setAdapter(mAdapter);
        actionBar.setHomeButtonEnabled(false);
        actionBar.setIcon(null);
        actionBar.setDisplayUseLogoEnabled(false);
        actionBar.setTitle("Saved Record");
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#ff7043"));
        actionBar.setStackedBackgroundDrawable(colorDrawable);
        for (String tab_name:tabs){
            actionBar.addTab(actionBar.newTab().setText(tab_name).setTabListener(this));
        }

        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }

            @Override
            public void onPageSelected(int position) {
                actionBar.setSelectedNavigationItem(position);
            }

            @Override
            public void onPageScrollStateChanged(int state) {
            }
        });
    }

    @Override
    public void onTabSelected(ActionBar.Tab tab, android.app.FragmentTransaction ft) {
        viewPager.setCurrentItem(tab.getPosition());
    }

    @Override
    public void onTabUnselected(ActionBar.Tab tab, android.app.FragmentTransaction ft) {

    }

    @Override
    public void onTabReselected(ActionBar.Tab tab, android.app.FragmentTransaction ft) {

    }
}

尝试更改应用程序的使用风格

<resources>
    <!-- Base application theme. -->
     <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:actionBarStyle">@style/ActionBarStyle</item>
     </style>

     <style name="ActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:background">/*your custom color*/</item>
     </style>
</resources>

@风格/动作条风格
/*您的定制颜色*/

我假设您正在使用“常规”操作栏

尝试通过导入来使用SupportActionBar

import android.support.v7.app.ActionBar;
和呼唤

actionBar = getSupportActionBar();

我想这应该可以解决你的问题。

你试过这个吗?是的,我也试过那个,但它不能正常工作,它已将actionbar背景色变为白色@MohitSuthar@GRV_Droid到目前为止有什么进展吗?是的,我找到了上述问题的解决方案@W3hri