簡體   English   中英

無法在Android中更改自定義操作欄背景顏色

[英]Failed to change custom actionbar background color in android

我正在創建一個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) {

    }
}

活動的屏幕截圖:-

在此處輸入圖片說明

我假設您正在使用“常規” ActionBar。

嘗試通過導入來使用SupportActionBar

import android.support.v7.app.ActionBar;

並打電話

actionBar = getSupportActionBar();

我認為這應該可以解決您的問題。

嘗試更改應用程序的使用風格

<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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM