您的位置:首页 > 移动开发 > Android开发

初学android开发--Fragment

2016-05-05 19:09 316 查看
Fragment(碎片)Fragment的创建1、自定义类继承Fragment2、复写onCreateView方法,返回view对象3、在Activity中添加显示此自定义Fragmentpublic View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState)@param inflater 布局填充器,使用它可以动态填充xml布局文件,并返回View对象@param container Fragment被包含的ViewGroup对象,Fragment的父布局@param Bundle 通过Bundle对象可以实现现场保护功能Fragment的显示#静态显示1、xml布局文件中使用<fragment>标签,声明需要显示的Fragment2、一定要添加id/tag,通过这个id/tag,可以用FragmentManager找到此Fragment3、指定name属性,它指向Fragment的绝对路径#动态显示1、xml布局文件中,创建Fragment的占位布局,通常使用FrameLayout2、java代码中,获取FragmentManager3、通过FragmentManager获取FragmentTransactionFragmentManager manager=getFragmentManager();FragmentTransaction transaction=manager.beginTransaction();4、通过FragmentTransaction可以对Fragment进行一系列操作5、调用FragmentTransaction.commit()提交事务Fragment与Activity之间的传值Activity->Fragment1、通过Fragment.setArgument可以向被添加Fragment对象中存储相应的数据2、初始化Bundle对象,并传入数据3、将bundle传给Fragment对象
<span style="font-size:14px;"><span style="white-space: pre;">		</span>FragmentManager manager = getFragmentManager();FragmentTransaction transaction = manager.beginTransaction();//通过Fragment.setArgument可以向被添加Fragment对象中存储相应的数据FragmentContent fragmentContent = new FragmentContent();//初始化Bundle对象,并传入数据Bundle bundle = new Bundle();bundle.putString("key", "这是从MainActivity中传进来的数据");//将bundle传给Fragment对象fragmentContent.setArguments(bundle);transaction.add(R.id.containerId, fragmentContent);transaction.commit();</span><span style="font-size: 14px;"></span>
4、在自定义Fragment类中,通过bundle=getArguments()取出bundleFragment->Activity使用接口回调传值的方法,步骤:1、在Fragment中创建公共接口类,并创建此接口类的全局变量,例如private ItemClickCallback itemClickCallback;public interface ItemClickCallback{public void onItemClickCalled();}2、创建setInterface方法public void setItemClickCallback(ItemClickCallback itemClickCallback){this.itemClickCallback=itemClickCallback;}3、在宿主Activity中实现此接口,并实现抽象方法4、宿主Activity显示Fragment时,通过setItemClickCallback将Activity本身传入Fragment中的itemClickCallback需要判断宿主Activity是否已经实现内部接口Activity activity=getActivity();if(activity instanceof ItemClickCallback){setItemClickCallback((ItemClickCallback)activity);}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: