码迷,mamicode.com
首页 > 移动开发 > 详细

Android--fragment

时间:2015-10-14 20:03:34      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:

碎片的简单用法

一个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就是限定符。

 

Android--fragment

标签:

原文地址:http://www.cnblogs.com/zrui513/p/4878387.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!