Fragment

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fragment相关的知识,希望对你有一定的参考价值。

android 3.0 (API level 11) 平板开始引入Fragment的

把平板的一部分分离出来.操作另一部分,利用它我们可以动态的修改UI的一部分,让这一部分变成我们希望的UI效果

下面是fragment 图片:

技术分享

 

Fragment包含在Activity中,Fragment只能存在于Activity的上下文(context)内,没有Activity就无法使用Fragment,因此Fragment只能在Activity的上下文(context)创建。Fragment可以作为Activity的一部分,Fragment和Activity非常相似,Fragment拥有一个与Activity相关的视图层次结构,拥有一个与Activity非常相似的生命周期

使用方法:

1.在fragment里

public class ShowFragment extends Fragment {
//返回当前fragment显示的内容

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

//使用打气筒与资源文件相联

return inflater.inflate(R.layout.show, null);

}

}

2.在Activity里调用Fragment 

  Activity不可以new ,但是Fragment是可以的

  为了保证更新同时成功或者同时失败 用到事务

public void showSound(View view){

SoundFragment fragment = new SoundFragment();

FragmentManager fm = getFragmentManager();

//事务

FragmentTransaction ft = fm.beginTransaction();

ft.replace(R.id.container, fragment);

ft.commit();

}

3,注意

开户事务每次都要执行

 

 

Fragment与Activity的通讯
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
EditText et_name = (EditText) getActivity().findViewById(R.id.et_name);
                                //上下文不一样
Toast.makeText(getActivity(), "name:"+et_name.getText().toString(), 0).show();
}
});
 
 
Fragment的生命周期
 
技术分享
 
 技术分享
 
向下兼容低版本
 
1.v4里面的包
2.继承FragmentActivit
3.得到管理器getSupportFragmentManger();
 public class MainActivity extends FragmentActivity {
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
 
public void open01(View view){
Fragment01 f = new Fragment01();
FragmentTransaction  ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.container, f);
ft.commit();
}

以上是关于Fragment的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin基础从入门到进阶系列讲解(基础篇)Fragment的基本使用

React扩展:fragmentContext

Android比较两个片段

Android 片段分离

activity嵌套fragment 并 启动activity

Fragment