使用片段时不显示选项卡内容 [英] Tab content is not showing when using fragment

查看:84
本文介绍了使用片段时不显示选项卡内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用片段创建可滚动的标签.

标签也在显示和滚动.但是问题是选项卡的内容没有显示.我正在使用片段来显示内容.我是这个主题的新手:片段.我在此代码中缺少任何内容吗?

请帮助我.

 公共类SrollableTab扩展了Activity{@Override公共无效onCreate(捆绑保存的InstanceState){super.onCreate(savedInstanceState);ActionBar bar = getActionBar();bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);bar.setDisplayOptions(0,ActionBar.DISPLAY_SHOW_TITLE);bar.addTab(createTab("Tab 1"));bar.addTab(createTab("Tab 2"));bar.addTab(createTab("Tab 3"));bar.addTab(createTab("Tab 4"));bar.addTab(createTab("Tab 5"));bar.addTab(createTab("Tab 6"));如果(savedInstanceState!= null){bar.setSelectedNavigationItem(savedInstanceState.getInt("tab",0));}}公共选项卡createTab(String tabTitle){ActionBar bar = getActionBar();Tab tab = bar.newTab().setText(tabTitle).setTabListener(new TabFragment());返回标签;}TabFragment类扩展Fragment实现TabListener{@Override公共无效的onCreate(BundlefragmentState){super.onCreate(fragmentState);}@Override公共视图onCreateView(LayoutInflater充气机,ViewGroup容器,捆绑保存的状态){视图view = inflator.inflate(R.layout.tab_content,container,false);TextView t =(TextView)view.findViewById(R.id.txtTab);t.setText("tab content");返回视图}@Override公共无效的onActivityCreated(捆绑保存状态){super.onActivityCreated(savedState);}@Override公共无效onTabReselected(标签"标签,FragmentTransaction ft){}@Overridepublic void onTabSelected(标签"标签,FragmentTransaction ft){}@Override公共无效onTabUnselected(标签"标签,FragmentTransaction ft){}}} 

tab_content.xml

 <?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 ="vertical"android:background =#ffffff">< TextView android:id ="@ + id/txtTab"android:layout_width ="wrap_content"android:layout_height ="wrap_content"android:text ="hello"android:textColor =#ff0000"/></LinearLayout> 

解决方案

这可能很旧,但是我找到了自己的解决方案.

我已经使用了 PagerSlidingTabStrip 一段时间,直到我开始使用新材料 TabLayout .两者都适用于活动,但不适用于片段.这是有关碎片错误的一些讨论.

我想出的解决方法是,在设置viewpager的adater(通常使用FragmentPagerAdapter扩展)的构造函数参数上,它需要FragmentManager,而不是使用活动的FragmentManager,而是使用片段的

tab_content.xml

<?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="vertical"
    android:background="#ffffff" >

    <TextView android:id="@+id/txtTab" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="hello"  
        android:textColor="#ff0000"/>
</LinearLayout>

This may be old but found my own solution on this.

I've use PagerSlidingTabStrip for a while now until I start using the new material TabLayout. Both works on Activity, but not on Fragments. This are some discussion about the bug on fragments.

The fix I've come up with is, on settings viewpager's adater (usually extended with FragmentPagerAdapter) on its constructor parameter it needs FragmentManager, instead of using the activity's FragmentManager use the fragment's one instead which is getChildFragmentManager().

That fix it. Android bugs still annoys me though.

Cheers

这篇关于使用片段时不显示选项卡内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆