android fragment+ FragmentTabHost+viewpager 切换状态不保存的问题

 转载请注明出处:http://blog.csdn.net/djy1992/article/details/46674169

@author dujinyang

难得有时间上来写博客。

fragment虽然好用,但个人还是觉得有利有弊。

网上大都说切换状态,有挺多问题,

有很多种解决方案。

第一种常常遇到的情况:

if(rootView == null)
			rootView = inflater.inflate(R.layout.fragment_home, container,false);
		ViewGroup parent = (ViewGroup) rootView.getParent();
		 if (parent != null)
		      parent.removeView(rootView);
		 initView(rootView); 
		 	
		return rootView;


 

第二种是LISTVIEW:

同样的道理,在listview的适配器里面,

	@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			View view=convertView;
			if(view==null)
			{
				view=new TextView(getActivity().getApplicationContext());
			}
			((TextView)view).setText("这是第"+position+"条测试数据");
			((TextView)view).setTextSize(20);
			return view;
		}

第三种估计比较少人遇到:

折腾了一下午,因为需求关系,需要在TAB第一选项里面加入 ViewPager+Tabhost +动画,

其实搞了很久才发现,原来是动画那一层,没有保存,但是因为是图片的原因,又无法保存位置,

测试了很久解决了。

OnPageChangeListener里面
重写的onPageSelected,switch的选择器里动画层输出由它自带arg0的,
为每一个tab增加多一个自身选项,作为位置保存,不能在外层记录位置,因为会出BUG的。
通过每一个tab的位置计算出来原来所在的位置,这样就可以解决滑动时产生的位置信息。
希望对大家有用。如果有其它的疑难杂症,可留言或加我Q。

转载请注明出处:http://blog.csdn.net/djy1992/article/details/46674169

原文地址:https://www.cnblogs.com/new0801/p/6175807.html