gcloudnov 2015-03-19 13:45 采纳率: 57.1%
浏览 2366

关于fragment嵌套的问题

我在网上下载了一个仿网易新闻的项目,他是通过侧边栏选择实现切换fragment
然而,我应该如何在不同的fragment中定义自己的内容呢?
基于我现有的这个模板,有哪些思路可以考虑呢?
我自己在ContentFragment的onCreateView方法内,通过if判断tag的值,可以实现简单的,不同fragment的显示文本的设置,可是如果我想实现更复杂的功能的话,应该怎样操作呢?
这是主activity中切换fragment的方法
/**
* 切换主视图区域的Fragment
*
* @param position
*/
private void selectItem(int position) {
Fragment fragment = new ContentFragment();
Bundle args = new Bundle();
switch (position) {
case 0:
args.putString("key", mMenuTitles[position]);
break;
case 1:
args.putString("key", mMenuTitles[position]);
break;
case 2:
args.putString("key", mMenuTitles[position]);
break;
case 3:
args.putString("key", mMenuTitles[position]);
break;
default:
break;
}
fragment.setArguments(args); // FragmentActivity将点击的菜单列表标题传递给Fragment
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.content_frame, fragment).commit();

    // 更新选择后的item和title,然后关闭菜单
    mMenuListView.setItemChecked(position, true);
    setTitle(mMenuTitles[position]);
    mDrawerLayout.closeDrawer(mMenuListView);
}

这是他定义的ContentFragment类
public class ContentFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View view = inflater.inflate(R.layout.fragment_layout, null);
    TextView tv = (TextView) view.findViewById(R.id.fragment_tag);
    String tag = this.getArguments().getString("key");
    tv.setText("这是选择" + tag + "的内容");
    return view;
}

}

  • 写回答

1条回答 默认 最新

  • Nate-fu 2015-03-19 14:46
    关注

    如果fragment的布局不一样,那么你就建多少个fragment就好的,通过按钮切换不同的fragment到activity中,如果布局一样只是数据不一样,那么直接替换数据就好了。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog