经过很多天试图找到一个带有标签的双窗格片段的解决方案后,我放弃了并制作了自己的列表视图,该列表视图位于平板电脑的 x-large 布局中,并且只有片段来管理我的标签。我的所有代码都可以工作,除了一部分,我试图删除选项卡中的旧片段并根据列表中单击的项目创建一个新片段。
这是生成选项卡片段的位置:
public class AppSectionsPagerAdapter extends FragmentPagerAdapter {
public AppSectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
//THESE FRAGMENTS ARE GENERATED WITH TABS AT START
@Override
public Fragment getItem(int i) {
switch (i) {
case 0:
return new DescriptionFragment();
case 1:
return new ImagesFragment();
default:
return new DescriptionFragment();
}
}
我从列表视图中添加片段的地方单击:
public void addfragment() {
//THIS FRAGMENT GOES ON TOP AFTER LISTVIEW CLICK
kick_activity.this.getSupportFragmentManager().popBackStack();
DescriptionFragment fragment = new DescriptionFragment();
android.support.v4.app.FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.container, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();
}
我的 DescriptionFragment 片段:
public static class DescriptionFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_section_description, container, false);
text = ((TextView) rootView.findViewById(R.id.description));
text.setText(Html.fromHtml(description_text));
return rootView;
}
我知道我做错了什么,我只是不知道如何解决它。似乎来自 getItem() 的片段已创建,当我单击我的列表视图并调用 addfragment() 时,由于片段未链接,它会覆盖。我可以在“case 0”中放置什么而不是“return new DescriptionFragment”,以便我的所有片段都链接并且不覆盖?
注意 - 当我尝试在 getItem() 中使用 ft.repalce 时,应用程序崩溃,根据 LogCat,它找不到 R.id.container,所以我不能简单地将该代码移入。
提前感谢您的帮助,我将非常感谢任何解决方案,因为我已经坚持了好几天了。