我正在尝试使用片段创建可滚动选项卡。
选项卡也会显示并滚动。但问题是选项卡内容没有显示。
我正在使用片段来显示内容。我是这个主题的新手:片段。我在这段代码中遗漏了什么吗?
请帮我。
public class SrollableTab extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
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"));
if (savedInstanceState != null) {
bar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0));
}
}
public Tab createTab(String tabTitle)
{
ActionBar bar = getActionBar();
Tab tab = bar.newTab().setText(tabTitle).setTabListener(new TabFragment());
return tab;
}
class TabFragment extends Fragment implements TabListener
{
@Override
public void onCreate(Bundle fragmentState)
{
super.onCreate(fragmentState);
}
@Override
public View onCreateView(LayoutInflater inflator, ViewGroup container, Bundle savedState)
{
View view = inflator.inflate(R.layout.tab_content, container, false);
TextView t = (TextView)view.findViewById(R.id.txtTab);
t.setText("tab content");
return view;
}
@Override
public void onActivityCreated(Bundle savedState)
{
super.onActivityCreated(savedState);
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}
}
}
选项卡内容.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>
这可能很旧,但找到了我自己的解决方案。
我用过寻呼机滑动选项卡条 https://github.com/astuetz/PagerSlidingTabStrip有一段时间了,直到我开始使用新材料选项卡布局 https://developer.android.com/reference/android/support/design/widget/TabLayout.html。两者都适用于 Activity,但不适用于 Fragment。这是一些讨论关于碎片上的错误。 https://code.google.com/p/android/issues/detail?id=181850
我提出的修复方法是,在设置 viewpager 的 adater(通常使用 FragmentPagerAdapter 扩展)的构造函数参数上,它需要 FragmentManager,而不是使用活动的 FragmentManager,而是使用片段的 FragmentManagergetChildFragmentManager() https://developer.android.com/reference/android/support/v4/app/Fragment.html#getChildFragmentManager().
这样就解决了不过,Android 的 bug 仍然让我烦恼。
Cheers
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)