【问题标题】:how to change android default eclipse actionbar tab background?如何更改android默认的eclipse actionbar标签背景?
【发布时间】:2014-06-13 14:55:29
【问题描述】:

我已经在 eclipse 文件->new->other->android 应用程序项目中创建了新项目

在这种导航类型中,我提供了带有视图寻呼机的操作栏选项卡,我使用带有选项卡的操作栏自动创建了 Eclipse,我需要更改操作栏 bg 和选项卡 bg 以及选项卡指示器 bg,我已更改操作栏背景颜色没有问题在于,但我不知道如何更改操作栏选项卡背景颜色和默认选项卡指示器蓝色?

这是我的代码。

public class MainActivity extends ActionBarActivity implements
    ActionBar.TabListener {

SectionsPagerAdapter mSectionsPagerAdapter;
ViewPager mViewPager;

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

    // Set up the action bar.
    final ActionBar actionBar = getSupportActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    actionBar.setDisplayShowTitleEnabled(false);
    LayoutInflater mInflater = LayoutInflater.from(this);

    View mCustomView = mInflater.inflate(R.layout.custom_actionbar, null);
    TextView mTitleTextView = (TextView) mCustomView.findViewById(R.id.title_text);
    String text = "<font color=#3e4093>Save</font> <font color=#ed3338>life</font>";
    mTitleTextView.setText(Html.fromHtml(text));
    actionBar.setCustomView(mCustomView);
    actionBar.setDisplayShowCustomEnabled(true);

    // Create the adapter that will return a fragment for each of the three
    // primary sections of the activity.
    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());

    // Set up the ViewPager with the sections adapter.
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(mSectionsPagerAdapter);
    mViewPager.setOffscreenPageLimit(2);
    mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
                @Override
                public void onPageSelected(int position) {
                    actionBar.setSelectedNavigationItem(position);
                }
            });
    for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
        actionBar.addTab(actionBar.newTab()
                .setIcon(mSectionsPagerAdapter.getIcon(i))
                .setTabListener(this));

    }
}

@Override
public void onTabSelected(ActionBar.Tab tab,
        FragmentTransaction fragmentTransaction) {
    mViewPager.setCurrentItem(tab.getPosition());
}

@Override
public void onTabUnselected(ActionBar.Tab tab,
        FragmentTransaction fragmentTransaction) {
}

@Override
public void onTabReselected(ActionBar.Tab tab,
        FragmentTransaction fragmentTransaction) {
}

/**
 * A {@link FragmentPagerAdapter} that returns a fragment corresponding to
 * one of the sections/tabs/pages.
 */
public class SectionsPagerAdapter extends FragmentPagerAdapter {

    public SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    public Drawable getIcon(int position) {

        switch (position) {
        case 0:
            return getResources().getDrawable(R.drawable.ic_home);
        case 1:
            return getResources().getDrawable(R.drawable.ic_info);
        case 2:
            return getResources().getDrawable(R.drawable.ic_more);
        }
        return null;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
        case 0:
            return new firstTab();
        case 1:
            return new secondTab();
        case 2:
            return new ThirdTab();
        }
        return null;
    }

    @Override
    public int getCount() {
        // Show 3 total pages.
        return 3;
    }
}}

【问题讨论】:

    标签: android tabs android-actionbar


    【解决方案1】:

    以此为参考

    How do I change the background color of the ActionBar of an ActionBarActivity using XML?

    你的样式文件应该是这样的

    <resources>
    
        <!--
            Base application theme, dependent on API level. This theme is replaced
            by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
        -->
        <style name="AppBaseTheme" parent="Theme.AppCompat.Light">
            <!--
            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.
            -->
        </style>
    
        <!-- Application theme. -->
        <style name="AppTheme" parent="AppBaseTheme">
             <!-- All customizations that are NOT specific to a particular API-level can go here. -->
             <item name="android:actionBarStyle">@style/MyActionBar</item>
        </style>
    
        <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
            <item name="android:background">#1ADEDB </item>
        </style>
    
    </resources>
    

    更改选项卡背景颜色 http://www.technotalkative.com/android-change-tab-bar-background-color/

    这个工具似乎很适合为操作栏生成样式。

    http://jgilfelt.github.io/android-actionbarstylegenerator/

    【讨论】:

    • 此样式适用于以上版本 11,并且不更改操作栏选项卡背景颜色
    【解决方案2】:

    我已使用此链接并使用此链接更改了操作栏选项卡的背景颜色,感谢@BlaShadow

    更改标签背景颜色http://www.technotalkative.com/android-change-tab-bar-background-color/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-17
      • 1970-01-01
      • 2015-07-25
      • 2022-01-15
      • 2021-02-13
      • 2015-05-12
      • 2012-04-24
      相关资源
      最近更新 更多