Fragment的碎片化

一: 要实现fragment的碎片化,有两种方式,这里,我只举出一种,即在xml中添加fragment

二:此时需要建立三个activity,分别为ListFragment,DetailFragment,TotalFragment,两个xml文件

      ListFragment:作为列表

    DetalFragment:内容详情

     TotalFragment:加载xml

三:ListFragment.java代码

 在编写ListFragment代码之前,现在strings.xml里面写一个数组,用来列表显示以及作为内容详情的显示,关键内容如下

 
         偶像来了
         奔跑吧,兄弟
         快乐大本营
         天天向上
         琅琊榜
         欢乐喜剧人
         养乐多
         职来职往
     
     
             《偶像来了》是2015年湖南卫视出品的女神生活体验秀节目。
                                           节目主持人为何炅、汪涵,嘉宾为全女神阵容林青霞、杨钰莹、朱茵、宁静、蔡少芬、谢娜、
                                             赵丽颖、张含韵、古力娜扎、欧阳娜娜。
                                             
                                             
                                             
         《奔跑吧兄弟》是浙江卫视引进韩国SBS电视台综艺节目《Running Man》推出的大型户外竞
                                                                        技真人秀节目,由浙江卫视和韩国SBS联合制作,节目前期由韩国团队主导中方配合,之后交
                                                                        由浙江卫视节目中心俞杭英团队全盘负责    
         《快乐大本营》是湖南卫视于1997年7月11日起开办的一档综艺性娱乐节目,节目固定每周
                                                                       六晚20:20分在湖南卫视播出。该节目由何炅、谢娜、李维嘉、杜海涛、吴昕担任主持。节目
                                                                       以游戏为主,辅以歌舞及各种形式给广大观众带来快乐。                                                                                                                                              
      《天天向上》是湖南卫视打造的大型娱乐脱口秀节目,2008年8月4日首播。节目主持阵容由
                                                                       汪涵、欧弟、钱枫、金恩圣(小五)、俞灏明五位天天兄弟组成。该节目采用全国第一支偶像男
                                                                       子主持团体的概念。节目氛围欢快轻松幽默,获得高收视率的同时,也受到了广大观众的好评。
       《琅琊榜》是根据海宴同名网络小说改编,以平反冤案、扶持明君、振兴山河为主线,讲述了“麒麟才子”梅长苏才冠绝伦、以病弱之躯拨开重重迷雾、智博奸佞,为昭雪多年冤案、扶持新君所进行的一系列斗争。梅长苏在国仇家恨、兄弟情义的漩涡中见招拆招、游刃有余,奏出了“江左梅郎”赤子之心下的一曲慷慨悲歌。
       《欢乐喜剧人》是一档由欢乐嘉娱、华录百纳及东方卫视联合打造的全国首档明星喜剧竞赛真人秀节目。该节目由吴秀波担任主持,由贾玲、宋小宝、沈腾、吴君如、刘仪伟、乔杉、修睿等担任参赛选手。通过以喜剧的各种节目样式传递快乐
      “Yakult”音译为“养乐多”和“益力多,(这个名称是取自世界语的“Jahurto”,意即酸奶。是一种风靡全球的、每瓶至少含有100亿特殊活性乳酸菌的乳饮品。
       《职来职往》是由李响主持的一档职场真人秀节目,于2010年12月10日开始在中国教育电视台一频道开播,该节目是一档帮助求职者正确的对待自己与职场,为多样的职场精英提供就业机会的全国首档大型职场真人秀。
     
    

ListFragment.java代码

注意:如果继承ListFragment ,且是通过加载xml的方法布局列表,则在xml中 的listview中的id应该设置为 android:id="@android:id/list",这里我们并没有加载对应的xml,所以 不用管

public class ListFragment extends android.app.ListFragment{
	
	private String[] list;   //用来获取strings.xml里面的"titile_list" 的内容

	private int curCheckPosition=0;
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		
		list=this.getResources().getStringArray(R.array.titile_list);
		ArrayAdapter adapter=new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1,list);
		setListAdapter(adapter);
     	showDetails(curCheckPosition);
	}
	void showDetails(int index){
		FragmentManager fm=getFragmentManager();
		DetailFragment details=(DetailFragment)fm.findFragmentById(R.id.detailfragment);
		if(details==null || details.getShowIndex()!=index);{
			details=DetailFragment.newInstance(index);
			FragmentTransaction ft=fm.beginTransaction();
			ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
			ft.replace(R.id.detailfragment, details);
			ft.commit();
		}
	
	}
	
	@Override
		public void onListItemClick(ListView l, View v, int position, long id) {
			// TODO Auto-generated method stub
			super.onListItemClick(l, v, position, id);
			showDetails(position);
		}
}

DetalFragment.java代码

public class DetailFragment extends Fragment{
	private TextView tv;
	private String[] text;   //用来获取strings.xml的“text”数组的内容

	public static DetailFragment newInstance(int index){
	DetailFragment df=new DetailFragment();
		
		Bundle bundle=new Bundle();  //实例化Bundle对象
		bundle.putInt("index",index); //将索引值添加到Bundle对象中
		df.setArguments(bundle);  //将Bundle对象作为Fragment的参数保存
		return df;
		
		
	}
 public int getShowIndex(){
	 int index=getArguments().getInt("index",0);
	  return index;   //获取要显示的列表项的索引
  }
  @Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		
		View view= inflater.inflate(R.layout.activity_detail,container,false);//获取对应的xml布局
		text=this.getResources().getStringArray(R.array.text);	
     	        tv=(TextView)view.findViewById(R.id.textView1);  //需注意这里获取控件的方法
     	        tv.setText(text[getShowIndex()]);
		return view;
	} 
}

TotalFragment.java代码

public class TotalFragment extends Activity{
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_fragment01);
	}

}

activity_fragment01.xml



    
    

//如果第二个Fragment用下面这个标签,程序会崩溃,原因尚未找到,如果有人知道,还希望可以分享一下
 

activity_detail.xml




    



效果图如下,且点击左侧的列表项,右侧会出现相应的内容详情

Fragment的碎片化_第1张图片

以上这个 Demo只是自己写的一个很基础的UI布局,也是结合百度、书一点一点写出来,上面所注释的疑惑还未解决,谁知道的,可以共享一下哦!

   

你可能感兴趣的:(学习)