首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PagerTabStrip没有显示

PagerTabStrip没有显示
EN

Stack Overflow用户
提问于 2016-07-14 11:59:56
回答 3查看 654关注 0票数 1

我正在进行滑动选项卡视图。我想把PagerTabStrip显示在SupportActionBar的底部。所有的选项卡内容都显示得很好,但问题是这些选项卡的标题没有显示,PagerTabStrip也没有显示在SupportActionBar的底部。

main_tab.xml:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:orientation="horizontal">


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

        <android.support.v4.view.PagerTabStrip
            android:layout_width="wrap_content"
            android:layout_height="100dp"
            android:background="#e62117"
            android:id="@+id/tab_strip"
            android:focusableInTouchMode="false">
        </android.support.v4.view.PagerTabStrip>

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

tab1,tab2,tab3:相似

代码语言:javascript
复制
  public class tab1 extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.tab1,container,false);
return view;
    }
}

ma_page_adapter:

代码语言:javascript
复制
public class ma_pager_adapter extends FragmentPagerAdapter {
    public ma_pager_adapter(FragmentManager fm) {
        super(fm);
    }


    @Override
    public Fragment getItem(int i) {

        switch (i) {
            case 0:
                tab1 t1 = new tab1();
                return t1;
            case 1:
                tab2 t2 = new tab2();
                return t2;
            case 2:
                tab3 t3 = new tab3();
                return t3;

        }
        return null;
    }

    @Override
    public int getCount() {
        return 3;
    }//set the number of tabs

    @Override
    public CharSequence getPageTitle(int position) {
        Locale l = Locale.getDefault();
        switch (position) {
            case 0:
                return "Top stories";
            case 1:

                return "Members";
            case 2:

                return "Setting";
        }
        return null;
    }
}

MainActivity:

代码语言:javascript
复制
   ViewPager pager;
    PagerTabStrip tab_strp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_tab);
        ma_pager_adapter mapager = new ma_pager_adapter(getSupportFragmentManager());


        pager = (ViewPager)findViewById(R.id.pager);
        pager.setAdapter(mapager);
//        tab_strp = (PagerTabStrip) findViewById(R.id.tab_strip);
        ((ViewPager.LayoutParams) findViewById(R.id.tab_strip).getLayoutParams()).isDecor = true;
//        tab_strp.setTextColor(Color.WHITE);
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-07-15 17:56:45

tab1.onCreateView(...)方法中删除这一行..。

代码语言:javascript
复制
((ViewPager.LayoutParams) (view.findViewById(R.id.tab_strip)).getLayoutParams()).isDecor = true;

..。并将其添加到MainActivity.onCreate(...)方法中。你的应用程序会停止崩溃。

您的tab1片段类不了解R.id.tab_strip视图。这是MainActivity类的视图。

票数 0
EN

Stack Overflow用户

发布于 2016-07-14 20:00:43

你的问题重复了下面的问题:

PagerTabStrip not showing in ViewPager in app targeting Android 6.X (N)

对于针对Android N的应用程序,您需要使用以下解决方法:

在onCreateView()中,添加以下内容:

((ViewPager.LayoutParams) (view.findViewById(R.id.tab_strip)).getLayoutParams()).isDecor = true;

票数 2
EN

Stack Overflow用户

发布于 2016-07-17 21:03:22

我已经运行了您的代码,它正在运行normal.If您想要在您的ViewPager底部显示它,您可以使用“android:layout_gravity”并将其设置为底部。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38373647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档