Fragment用法

静态加载Fragment 

1.是Activity的一部分 是一个房子的一个房间 房间的布局可以在多个房子中出现

2.自己的输入事件,自己的生命周期。受宿主影响。


1.创建Fragement 继承 Fragment 重写onCreatView方法 此方法返回一个view(这是一个非常普通的的layout转换成的view) 也可以返回null

View v = inflater.inflate(R.layout.fragment3, null) ;

2.layout文件处理  name的属性是包名.类名 对应到类上去  这是一个在activity中最先要加载的界面 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#FFFF00" >
    
    <fragment
<span style="white-space:pre">	</span>android:id="@+id/fragment"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:name="com.example.test.fragment1"></fragment> 
    

</LinearLayout>
3.过程是这样的 首先是一个activity加载一个界面 这个界面中 指定了一个 fragment 这个fragment是指向一个继承了Fragment的类 类中加载了一个layout 于是乎 这个activity就是最后一个layout中的内容。当然,因为在第一个中加载过了 所以 在activity中都可以直接使用 第二个fragment中的内容 fragment的大小随意定。  


动态加载

将fragment添加到某个layout中 使用add() ,remove(),replace() 最后提交 commit()(如果允许回调 则在commit()前加入addToBackStack(null))


1.处理fragment事务的类  (在activity中处理)

	MyFragment myFragment = new MyFragment(); //先生成对象
	FragmentManager fragmentManager = getFragmentManager();//获得管理者
	FragmentTransaction beginTransaction = fragmentManager.beginTransaction();//开启事务
	beginTransaction.add(arg0, arg1)//arg0s是所加载布局的位置的ID ,第二个是类的名字
	beginTransaction.commit();

Fragment的生命周期 (基本和Activity差不多)


Fragment与Acticity通信

Fragment调用getActiivty找到宿主


在Acticity中 建立一个

fragment.setArgumnets(Bundle);

之后动态加载Fragment 在Fragemnt中  text = ( String)getArguments().get("name");


回传数据得用接口

public MyListener listerner;

public interface MyListener

{

public void thank(String code);

}

在onAttach(Activity activity){

listener = (MyLsitener)actiivty;

super.onAttach();

}

在 onCreateView中直接调用接口的方法

lisener.thank(code)就回传数据了

在Activty中实现接口






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值