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 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘