Fragment相关知识点及使用(一)

Fragment相关知识点及使用(一)

2023年7月13日发(作者:)

Fragment相关知识点及使⽤(⼀)⼀、Fragment的静态使⽤1、根据需要创建Fragment1) 创建⼦类继承Fragment2) 重写onCreateView()⽅法,为Fragment设置xml⽂件,转换成view对象返回2、在activity布局中,通过标签引⼊fragmentandroid:name=”fragment的包名.类名”在activity布局⽂件中设置如下: ⼆、Fragment的动态使⽤1、创建Fragment的管理器对象2、获取Fragment的 事务对象并开启事务3、调⽤事务中相应的的动态操作Fragment的⽅法执⾏add:表⽰fragment动态添加位置的资源id, 表⽰添加的fragment对象。remove:需要移除的fragment对象。replace:表⽰替换fragment位置的资源id, 表⽰替换fragment对象。4、提交事务⽐如:(1)创建Fragment的管理对象FragmentManager fragmentManager = getFragmentManager();(2)获取Fragment的事务对象并开启事务FragmentTransaction transaction = ransaction();(3)调⽤事务中相应的动态操作Fragment的⽅法执⾏(_title, new TitleFragment());(_content, new ContentFragment());(4)提交事务();三、Activity向Fragment传值步骤如下:1、Activity中创建Fragment对象,调⽤setArguments(bundle)⽅法存储值MyFragment1 myFragment1 = new MyFragment1();Bundle bundle = new Bundle();ing("info", info);uments(bundle);FragmentManager manager = getFragmentManager();FragmentTransaction transaction = ransaction();(content, myFragment1);();2、Fragment中调⽤getArguments()获取传递的Bundle对象解析获取具体值Bundle bundle = getArguments();String info = ing("info");四、Fragment向Activity传值步骤如下:1、Fragment中定义传值的回调接⼝,在声明周期onAttach()/onCreate()/onCreateView()⽅法中获取接⼝的 ⽅法public class MyFragment2 extends Fragment { private MyListener2 myListener2; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { … … myListener2 = (MyListener2) getActivity(); ssage(message); … … } public interface MyListener2{ void sendMessage(String str); }}2、Fragment需要传值的位置调⽤回调⽅法传值public class MyActivity2 extends Activity implements ener2 { @Override public void sendMessage(String str) { … … }}五、Fragment与Fragment之间的传值同⼀个Activity中不同Fragment之间传值⽅式1: 可以调⽤findFragmentById()⽅法根据id获取fragment的对象,调⽤framgent中的⽅法赋值RightFragment rightFragment = (RightFragment) getFragmentManager().findFragmentById(right); xtView(info);⽅式2:先调⽤getFragmentManager()获取fragmentManager对象,然后调⽤findFragmentById()⽅法获取右侧fragment, 再调⽤getview()获取右侧fragment的view,最后调⽤findViewById()获得赋值的控件 TextView rigth_show = (TextView) getFragmentManager().findFragmentById(right).getView().findViewById(_show); rigth_t(info);⽅式3:先调⽤getActivity()⽅法获取所属activity的对象,然后调⽤findViewById()获取⽬标控件 TextView rigth_show = getActivity().findViewById(_show); rigth_t(info);⽅式4:先从⼀个Fragment中传值给Activity,然后调⽤setArguments和getArguments()来进⾏传值六、ListFragment需要主要两点:1、在创建ListFragment布局⽂件时,ListView控件id必须为“@id/android:list”⽐如: 2、绑定数据,采⽤setListAdapter()⽅法,绑定每项点击事件重写onListItemClick()⽅法public class MyListFragment extends ListFragment { private List list; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = e(agment, null); list = new ArrayList<>(); for (int i = 0; i < 20; i++) { ("item " + i); } ArrayAdapter adapter = new ArrayAdapter(getActivity(), _list_item_1, list); setListAdapter(adapter); return view; } @Override public void onListItemClick(ListView l, View v, int position, long id) { xt(getActivity(), (position) + "被单击了", _SHORT).show(); }}七、DialogFlagment1、创建⼦类继承DialogFragment2、重写onCreateDialog()⽅法,返回当前需要展⽰的Dialog对象public class MyDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { r builder = new r(getActivity()); le("提⽰"); // 设置对话框标题 n(_launcher_foreground); // 设置对话框图标 sage("您确定要退出吗?"); // 设置对话框提⽰信息 itiveButton("确定", new kListener() { // 设置确定按钮点击事件 @Override public void onClick(DialogInterface dialog, int which) { } }); ativeButton("取消",null); // 设置取消按钮点击事件 return (); // 将构建的dialog对象返回 }}3、创建DialogFragment的⼦类对象,并且调⽤show()⽅法显⽰MyDialogFragment myDialogFragment = new MyDialogFragment();(getFragmentManager(), "dialog");特别注意:⾄少实现OnCreateView()或者onCreateDialog()⽅法onCreateView():表⽰以xml布局⽂件的形式展⽰dialogonCreateDialog():利⽤alertDialog或者dialog创建

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689214858a222107.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信