入门Android开发--第一行代码--笔记系列(Fragment)
来源:互联网 发布:苏州餐饮软件 编辑:程序博客网 时间:2024/05/06 07:52
这是我第一次用MarkDown写文章
写在前面,竟然没有颜色。。。还不会粗斜体一起用
Fragment
Fragment的包可以使用android.app.Fragment,兼容4.0以上;另一个包则是继续往下兼容
//Fragment创建和activity类似,布局更是一样。public class LeftFragment extends Fragment {@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view =inflater.inflate(R.layout.left_fragment,container,false); return view;}}
书上布局书写用了一个#00ff00,超级鲜艳的绿色。真是不明白这些人教程用的颜色干嘛这么闪。。
然后需要用一个activity_main布局,包含这两个fragment
<fragmentandroid:id="@+id/left_fragment"android:name="com.example.tpout.myapplication.LeftFragment"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"/>
AndroidStudio在预览渲染的时候很人性化的提醒了,可以动态使用。
于是可以添加第三个third_fragment,用FrameLayout将right_fragment包裹起来
对的,就和你想到的一样,通过一个点击事件,这里我们就用作left_fragment里的textView吧
//这里有一个挺长的空指针警告弹出 textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ThirdFragment fragment=new ThirdFragment(); FragmentManager fragmentManager=getFragmentManager(); FragmentTransaction transaction=fragmentManager.beginTransaction(); transaction.replace(R.id.right_fragment,fragment); transaction.commit(); }});
替代之后倒是出现一件怪事,明明是复制的代码,third就比right要小一层
模拟返回栈
上面的方式很直白,在back键下会直接退出activity
只需要在replace之后,commit之前加入如下一句代码即可,
transaction.addToBackStack(null);
和Activity通信
getFragmentManager()和getActivity()
这里并没有仔细讲出,感觉也没有那么好悟啊。。啊。
简单度娘了下,还是学习官方文档时或用到再看
生命周期
也按activity的说明进行说明
1、运行状态 fragment可见,相关联activity运行,fragment也在运行
2、暂停状态 activity暂停,fragment就暂停
3、停止状态 activity停止;被remove、被replace,但在commit之前调用addToBackStack;
4、销毁状态 activity销毁时;被remove、被replace,但是没有被addToBackStack
回调方法
就提几个。
1、onAttach() 当碎片和活动建立关联时使用
2、onActivityCreated() 确保关联activity创建完毕
3、onCreateView()
4、onDestroyView()
5、onDetach() 解除关联
也有周期表,可以借用log调试加深理解。
动态加载技巧
这是不是要结合UI讲的啊。。就是在不同资源文件下创建不同布局,以自适应
关键词–限定符
相信聪明的你一定可以很快上手的
这里练习没有用到超链接。这里加一个好了CSDN官网
- 入门Android开发--第一行代码--笔记系列(Fragment)
- 入门Android开发--第一行代码--笔记系列(Activity)
- 入门Android开发--第一行代码--笔记系列(Intent)
- 入门Android开发--第一行代码--笔记系列(问)
- 入门Android开发--第一行代码--笔记系列(五)
- 入门Android开发--第一行代码--笔记系列(广播)
- 入门Android开发--第一行代码--笔记系列(SQLite)
- 入门Android开发--第一行代码--笔记系列(六)
- 入门Android开发--第一行代码--笔记系列(Service)
- 入门Android开发--第一行代码--笔记系列(八)
- 入门Android开发--第一行代码--笔记系列(九)
- 入门Android开发--第一行代码--笔记系列(结束)
- 入门Android开发--第一行代码--笔记系列(存储读取Internal文件)
- 碎片(Fragment)--《第一行代码Android》笔记
- 第一行代码笔记6(Fragment)
- 《第一行代码》学习笔记--Android入门(五、六)
- Android 开发入门之《第一行代码》(1)
- 第一行代码笔记 (fragment)碎片的使用
- 认识——数据库存储过程和游标
- mysql开启慢查询日志和新增日志--linux
- JSP
- stack overflow的 问题
- hdu1811 Rank of Tetris(并查集+拓扑排序)
- 入门Android开发--第一行代码--笔记系列(Fragment)
- Android JNI 使用的数据结构JNINativeMethod详解
- Kbuild: the Linux Kernel Build System
- 【卡特兰数+大数】HDU1131Count the Trees
- 51Nod-1072-威佐夫游戏
- java 链表 树
- 大数据的处理方法<二>
- linux下wc统计文件的个数、行数、字数、字节数等信息
- java容器学习