Android菜鸟笔记-Fragment日常使用记录
来源:互联网 发布:淘宝店在哪进货 编辑:程序博客网 时间:2024/05/17 04:40
以下为本人日常使用Fragment时遇到的一些基础知识点,记录以加深印象:
1. xml layout中静态添加Fragment时,宿主Activity必须继承FragmentActivity
2. 代码中动态加载Fragment时,Fragment显示的区域为layout中的FrameLayout
<FrameLayout android:id="@+id/frame_container" android:layout_width="match_parent" android:layout_height="match_parent" />
3.Fragment中根据layout生成UI的代码为:
@Overridepublic View onCreateView(LayoutInflater inflater,@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {// TODO Auto-generated method stubView view = inflater.inflate(R.layout.fragment_main,container, false);return view;}4. Activity中动态添加Fragment的简单代码为:
getFragmentManager().beginTransaction().replace(R.id.frame_container, mFragment).commit();5.加载Fragment的时候可以添加动画效果:
getFragmentManager().beginTransaction().setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right).replace(R.id.frame_container, mFragment).commit();6.Fragment加载其它Fragment时通过getActivity().getSupportFragmentManager()获取FragmentManager对象
7. Activity或者Fragment与其他Fragment传值:
Fragment fragment = new Fragment();Bundle bundle = new Bundle(); bundle.putString("argument", value); fragment.setArguments(bundle);8.单一Fragment被复用时,要保证每次创建的唯一性,同时来回切换时还要避免反复创建,我们可以通过创建它时传递一个tag参数来标记,这样就可以通过tag来获取了:
private void showFragment(int position,String tag){FragmentManager fm = getFragmentManager();FragmentTransaction transaction = fm.beginTransaction(); Fragment currentFragment = fm.findFragmentById(R.id.frame_container); Fragment toFragment = fm.findFragmentByTag(tag); if(toFragment!=null) { if(!toFragment.isVisible()) { transaction.hide(currentFragment); transaction.show(toFragment); transaction.commit(); } } else { transaction.hide(currentFragment); Fragment fragment = new Fragment(); transaction.add(R.id.frame_container,fragment, tag); transaction.commit(); } }9. Fragment需要创建menu时:
需要先在onCreate()方法里添加setHasOptionsMenu(true);,然后覆写onCreateOptionsMenu方法:
@Overridepublic void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setHasOptionsMenu(true); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { menu.clear();//清除原先activity的menu inflater.inflate(R.menu.work, menu);//加载自己的menu super.onCreateOptionsMenu(menu, inflater);}
1 0
- Android菜鸟笔记-Fragment日常使用记录
- android FragMent使用笔记
- aapt日常日常使用记录
- 日常笔记记录
- 日常笔记记录Mybatis
- linux 日常使用记录
- Git日常使用记录
- Android之道--Fragment使用记录
- 某自称菜鸟的日常笔记(3)
- Android菜鸟笔记-selector的使用
- Android菜鸟笔记-振动器Vibrator的使用
- Android 日常笔记
- Android开发日常笔记
- Android系统编译日常记录
- git 日常使用笔记
- okHttp日常使用笔记
- Androidstudio日常使用笔记
- 日常linux使用笔记
- 用Java搭建微信公众号(一)构建基础请求框架
- 北航校赛2014 决赛 题解
- 基于JCaptcha还原CSDN算数式验证码
- 自己动手写web框架----2
- 4月英语学习感想
- Android菜鸟笔记-Fragment日常使用记录
- Weave实现跨主机容器互联
- Visual Studio Code 文本编辑功能初体验
- C语言基础之预编译
- HDU 2391 Filthy Rich
- 机器学习实战ByMatlab(五)Logistic Regression
- 算法导论15章动态规划
- 数学之美--笔记5
- 项目实践——Easyui解析器