标签:
一个Activity中使用两个fragment
fragment的使用
1、2个fragment的XML布局文件
2、2个继承自fragment的类文件
3、在Activity的XML文件里面用<fragment>标签添加类名。
就OK了。
每一个fragment的XML都对应一个继承自fragment并引用该XML的类。
fragment适合和fragmeLayout结合在一起用。
在活动中添加碎片。
AnotherRightFragment fragment = new AnotherRightFragment(); FragmentManager fragmentManager = getFragmentManager(); //在活动中可以调用该方法开启 FragmentTransaction transaction = fragmentManager.beginTransaction();//开启一个事务,通过调用beginTransaction() transaction.replace(R.id.right_layout,fragment);//向容器中添加碎片,一般用replace()实现,需要传入带添加的容器,就是刚才的fragLayout,和待添加的fragment碎片实例 transaction.commit();//提交事务。
在碎片中处理返回栈的问题
点击添加,右边的fragment确实切换了,但是按back键,就会直接退出程序,因为这一步动态添加碎片的动作并没有添加到返回栈里面
transaction.addToBackStack(null); 放在replace()和commit() 方法中间。参数表示 接受一个名字用于描述返回栈的状态,一般传入null就可以。
虽然碎片嵌入在活动中,但是并没有多大关系,可以看到,碎片和活动都是运行在独立的类中的。
为了方便碎片和活动进行通信,FragmentManager提供了一个类似于findViewById()的方法。
在活动中调用碎片中的方法,在布局中获得碎片的实例
RightFragment rightFragment =(RightFragment) getFragmentManager().findFragmentById(R.id.right_fragment);
在碎片中调用活动中的方法
MainActivity activity = (MainActivity)getActivity();
一样的道理,碎片---活动---碎片。
1、使用限定符(Qualifiers)
可以判断运行时程序应该是使用双页模式还是单页模式,
layout/activity_main.xml
layout-large/activity_main.xml
large就是限定符。
标签:
原文地址:http://www.cnblogs.com/zrui513/p/4878387.html