从viewpager适配器设置页面标题后,页面标题不会出现在ViewPager中

时间:2016-07-05 12:36:30

标签: java android

我从适配器

设置标题后,标题不会出现在PagerTabStrip中

这是我的活动

public class MainActivity extends AppCompatActivity {
    private ViewPager pager ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        pager = (ViewPager) findViewById(R.id.pager);
        pager.setAdapter(new PagerAdapter(getSupportFragmentManager(),this));
    }

}

这是我的布局

 <?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.view.PagerTabStrip
        android:id="@+id/titlepage"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="top"

        />

</android.support.v4.view.ViewPager>

这是适配器

public class PagerAdapter extends FragmentPagerAdapter {

public PagerAdapter(FragmentManager fm , Context ctxt) {
    super(fm);

}
@Override
public Fragment getItem(int position) {
    return MyFragment.newInstance(position);
}
@Override
public int getCount() {
    return 10;
}

@Override
public String getPageTitle(int position) {

    return "title" + position ;
}

这是应用程序中使用的主题: -

  <!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

结果: -

enter image description here

正如你在上面的图片中看到的那样,即使我在getPageTitle方法中设置标题,也没有标题出现在viewpager中,有人能告诉我阻止我在viewpager中添加标题的错误是什么?

2 个答案:

答案 0 :(得分:1)

在布局中使用此

<android.support.design.widget.AppBarLayout
            android:id="@+id/Parent"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="60dp">

            <android.support.v7.widget.Toolbar
                android:id="@+id/my_toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:theme="@style/ThemeOverlay.AppCompat.ActionBar" />


            <android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/pager"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />

        </android.support.design.widget.AppBarLayout>

我的代码,你可以根据自己的方便自定义它。

答案 1 :(得分:1)

PagerTabStrip被Google忽略了。您可能希望考虑切换到其他ViewPager标签指示符。

如果compileSdkVersion为23,请确保您使用的是最新版本的v23 Android支持库。现在,那是23.4.0。因此,例如,您可能依赖support-v4:23.4.0。您遇到的问题是https://msdn.microsoft.com/en-us/library/dd894051(v=sql.100).aspx

如果compileSdkVersion为24,请密切注意was fixed,因为似乎有新错误。