入门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官网

0 0
原创粉丝点击