问题描述
- 关于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 {@Overridepublic 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;}
}
解决方案
如果fragment的布局不一样,那么你就建多少个fragment就好的,通过按钮切换不同的fragment到activity中,如果布局一样只是数据不一样,那么直接替换数据就好了。
时间: 2024-10-28 04:19:54