android - 如何更改android viewpager 中的Tabbackground 和文本?

标签 android

public class MainActivity extends FragmentActivity implements
        ActionBar.TabListener {

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

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

        viewPager.setAdapter(mAdapter);
        actionBar.setHomeButtonEnabled(false);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        // Adding Tabs
        for (          String tab_name : tabs) {
            actionBar.addTab(actionBar.newTab().setText(tab_name)
                    .setTabListener(this).setCustomView(R.layout.pager_title_strip));

        }

        /**
         * on swiping the viewpager make respective tab selected
         * */
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                // on changing the page
                // make respected tab selected
                actionBar.setSelectedNavigationItem(position);

            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }

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

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub

        switch (item.getItemId()) {
        case R.id.share:



            break;

        default:
            break;
        }

        return super.onOptionsItemSelected(item);
    }


    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        // on tab selected
        // show respected fragment view
        viewPager.setCurrentItem(tab.getPosition());
    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
    }

下面是我的xml:

  <RelativeLayout
        android:id="@+id/content"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@id/footer"
        android:gravity="center" >

        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textColor="#ffffff" >
        </android.support.v4.view.ViewPager>
    </RelativeLayout>

我想将 TabPage 设置为橙色,当它选择时文本应该是白色,否则它应该是白色我正在尝试使用 for ( String tab_name : tabs) 修复它

{
            actionBar.addTab(actionBar.newTab().setText(tab_name)
                    .setTabListener(this).setCustomView(R.layout.pager_title_strip));

        }

但是我无法设置背景请帮助如何实现

enter image description here

最佳答案

我认为您正在寻找 ActionBar 样式的 android:backgroundStacked 属性:

<style name="MyTheme" parent="android:Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBarStyle</item>
</style>

<style name="MyActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
    <item name="android:backgroundStacked">@drawable/my_stacked_background</item>
</style>

或(如果使用 ActionBarSherlock):

<style name="MyTheme" parent="@style/Theme.Sherlock.Light">
    <item name="android:actionBarStyle">@style/MyActionBarStyle</item>
    <item name="actionBarStyle">@style/MyActionBarStyle</item>
</style>

<style name="MyActionBarStyle" parent="@style/Widget.Sherlock.Light.ActionBar.Solid">
    <item name="android:backgroundStacked">@drawable/my_stacked_background</item>
    <item name="backgroundStacked">@drawable/my_stacked_background</item>
</style>

关于android - 如何更改android viewpager 中的Tabbackground 和文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31137832/

相关文章:

java - 反弹弹?

android - 如何使 DialogFragment 包装其内容并同时将 View 对齐到底部?

java - 使用 JSON 获取数据

java - 用于来 self 的 Android 应用程序的持久数据的 Azure 移动服务不起作用

android - 要求用户在 IONIC 3 应用程序中激活地理定位

android - RecyclerView 不显示任何图像

android - 从android中的文件路径获取内容uri

android - 无法启动 Activity ComponentInfo {className} java.lang.IllegalStateException:找不到颜色! (Android JetPack撰写)

android - 覆盖 Kotlin lambda 表达式中的多个接口(interface)方法

java - Dagger 2,MVVM : Adding a third tab and going back and forth crashes the app