【问题标题】:How to add title?如何添加标题?
【发布时间】:2016-06-17 20:44:08
【问题描述】:

我正在使用TabLayoutViewPager 创建选项卡,并且可以使用它。出于某种原因,选项卡的标题没有显示。

这很奇怪,因为每个选项卡上都应该有文本......

代码如下:

public class MainActivity extends AppCompatActivity {

    MyPageAdapter pageAdapter;


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

        TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
        tabLayout.setBackgroundColor(Color.rgb(45, 237, 192));
        tabLayout.addTab(tabLayout.newTab().setText("TITLE ONE"));
        tabLayout.addTab(tabLayout.newTab().setText("TITLE TWO"));
        tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);


        List<Fragment> fragments = new ArrayList<Fragment>();
        fragments.add(Enable.newInstance());
        fragments.add(selector.newInstance());

        pageAdapter = new MyPageAdapter(getSupportFragmentManager(), fragments);
        final ViewPager pager =
                (ViewPager) findViewById(R.id.viewpager);
        pager.setAdapter(pageAdapter);

        tabLayout.setupWithViewPager(pager);

        tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                pager.setCurrentItem(tab.getPosition());
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {

            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        });
    }
}

那是MainActivity的JAVA。这是 XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.curlybrace.ruchir.tabs.MainActivity"
    android:windowSoftInputMode="stateVisible|adjustPan|adjustResize">

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />


    <android.support.design.widget.TabLayout
        android:id="@+id/tab_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:minHeight="?attr/actionBarSize"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>


</RelativeLayout>

同样,我的选项卡运行良好,但没有显示它们的标题。

【问题讨论】:

  • 尝试改变TabLayout的背景颜色(改为不同于?attr/colorPrimary的颜色)...只是为了测试...也许,标题也使用原色

标签: java android xml string algorithm


【解决方案1】:

删除您的两个 addTab() 呼叫。您使用的是setupWithViewPager(),这意味着标签来自ViewPager,标题来自PagerAdapter 上的getPageTitle()

【讨论】:

  • 如何在我的PagerAdapter 中实现getPageTitle()
  • @RuchirBaronia:覆盖它并返回选项卡的标题,给定作为参数提供的ViewPager 位置。有关以这种方式使用 TabLayoutViewPager 的应用,请参阅 this sample project
  • 那么如果我有两个选项卡,第一个选项卡的位置为零,第二个选项卡的位置为一?所以我可以有一个条件并根据该位置返回一个标题,对吗?
  • @RuchirBaronia:正确。或者从一个二元素数组中返回值。或者从两个元素 ArrayList 返回值。有很多可能性。 :-)
  • 另外,我可以改变标题的颜色吗,现在是白色,但我想要黑色。
猜你喜欢
  • 1970-01-01
  • 2017-09-05
  • 2016-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-21
  • 2016-12-16
  • 2017-07-13
相关资源
最近更新 更多