bottomTagFragment

本文解析了智慧北京项目中复杂的代码实现,重点介绍了五个子页面的数据填充方法。通过具体实例展示了如何使用 ViewPager 和自定义 Adapter 来加载不同类型的页面数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


这种写法参考智慧北京的代码(避免上一篇博客出现的问题)




智慧北京这个代码还是相当的复杂,没有扎实的基本功是很难看懂、融会贯通的。需要在平时去积累怎样去用和学习

五个子页面填充数据的方法


	@Override
	public View initViews() {
		View view = View.inflate(mActivity, R.layout.news_menu_detail, null);
		mViewPager = (ViewPager) view.findViewById(R.id.vp_menu_detail);
		return view;
	}
//在这个类NewsMenuDetailPager的布局中添加数据
	@Override
	public void initData() {
		mPagerList = new ArrayList<TabDetailPager>();

		// 初始化页签数据
		for (int i = 0; i < mNewsTabData.size(); i++) {
			TabDetailPager pager = new TabDetailPager(mActivity, mNewsTabData.get(i));
			mPagerList.add(pager);
		}

		//设置Adapter
		mViewPager.setAdapter(new MenuDetailAdapter());
	}


//添加数据到Adapter中
	class MenuDetailAdapter extends PagerAdapter {

		@Override
		public int getCount() {
			return mPagerList.size();
		}

		@Override
		public boolean isViewFromObject(View arg0, Object arg1) {
			return arg0 == arg1;
		}
//返回布局文件
		@Override
		public Object instantiateItem(ViewGroup container, int position) {
			TabDetailPager pager = mPagerList.get(position);
			container.addView(pager.mRootView);
			pager.initData();
			return pager.mRootView;
		}


instantiateItem (ViewGroup container, int position)

public Object instantiateItem (ViewGroup container, int position)

Create the page for the given position. The adapter is responsible for adding the view to the container given here, although it only must ensure this is done by the time it returns fromfinishUpdate(ViewGroup).

Parameters
container	The containing View in which the page will be shown.
position	The page position to be instantiated.
Returns
Returns an Object representing the new page. This does not need to be a View, but can be some other container of the page.
这个函数的实现的功能是<span style="background-color: rgb(51, 204, 0);">创建指定位置的页面视图</span>。适配器有责任增加即将创建的View视图到这里给定的container中,这是为了确保在finishUpdate(viewGroup)返回时this is be done!
返回值:返回一个代表新增视图页面的Object(Key),这里没必要非要返回视图本身,也可以这个页面的其它容器。其实我的理解是可以代表当前页面的任意值,只要你可以与你增加的View一一对应即可,比如position变量也可以做为Key(最后我们举个例子试试可不可行)



下载链接  http://pan.baidu.com/s/1dF5ACzJ



同时这里也有些其他的比较好的网上资源

https://www.google.com.hk/#newwindow=1&safe=strict&q=android+%E5%BA%95%E9%83%A8%E5%AF%BC%E8%88%AA%E6%A1%86%E6%9E%B6




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值