我在网上下载了一个仿网易新闻的项目,他是通过侧边栏选择实现切换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;
}
}