在菜单的Fragment中创建这个方法:
我的布局有些复杂 我就不画了 我自己也头疼已经11个页面了 还好脑袋里有图,我没画图工具要不画给大家了
/** * 切换菜单详情页页面 * * @param position */ protected void setCurrentMenuDetailPager(int position) { // 获取新闻中心对象NewsCenterPager // 1.先获取MainActivity, // 2.通过MainActiivty获取ContentFragment // 3.通过ContentFragment获取NewsCenterPager MainActivity mainUI = (MainActivity) mActivity; ContentFragment contentFragment = mainUI.getContentFragment(); NewsCenterPager newsCenterPager = contentFragment.getNewsCenterPager(); // 给新闻中心页面的FrameLayout填充布局 newsCenterPager.setCurrentMenuDetailPager(position); }
其实这个方法就是传一个position给填充的页面 让 填充的页面来处理填充
下载来看 news页面(就是要填充的页面),这个页面初始化了菜单页面的4个选项页面 这4个页面将要填充再news页面,
// 初始化4个菜单详情页 mMenuDetailPagers = new ArrayList<BaseMenuDetailPager>(); mMenuDetailPagers.add(new NewsMenuDetailPager(mActivity, mNewsMenuData.data.get(0).children)); mMenuDetailPagers.add(new TopicMenuDetailPager(mActivity)); mMenuDetailPagers.add(new PhotosMenuDetailPager(mActivity)); mMenuDetailPagers.add(new InteractMenuDetailPager(mActivity)); // 菜单详情页-新闻作为初始页面 setCurrentMenuDetailPager(0);
下面就是填充的方法
// 给新闻中心页面的FrameLayout填充布局 protected void setCurrentMenuDetailPager(int position) { BaseMenuDetailPager pager = mMenuDetailPagers.get(position); // 移除之前所有的view对象, 清理屏幕 flContent.removeAllViews(); flContent.addView(pager.mRootView); pager.initData();// 初始化数据 // 更改标题 tvTitle.setText(mNewsMenuData.data.get(position).title); }
原文:http://www.cnblogs.com/AceIsSunshineRain/p/5187159.html