Fragment
来源:互联网 发布:navicat怎么连接mysql 编辑:程序博客网 时间:2024/05/02 00:12
作用:
Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视。针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套App,然后拷贝一份,修改布局以适应平板神马超级大屏的。难道无法做到一个App可以同时适应手机和平板么,当然了,必须有啊。Fragment的出现就是为了解决这样的问题。你可以把Fragment当成Activity的一个界面的一个组成部分,甚至Activity的界面可以完全有不同的Fragment组成,更帅气的是Fragment拥有自己的生命周期和接收、处理用户的事件,这样就不必在Activity写一堆控件的事件处理的代码了。更为重要的是,你可以动态的添加、替换和移除某个Fragment。
历史:
Android是在Android 3.0 (API level 11)开始引入Fragment的。
例子一:
不扯淡了,直接上例子,这才有感性认识。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
android:id="@+id/id_fragment_title"
android:name="com.zhy.zhy_fragments.TitleFragment"
android:layout_width="fill_parent"
android:layout_height="45dp" />
<fragment
android:layout_below="@id/id_fragment_title"
android:id="@+id/id_fragment_content"
android:name="com.zhy.zhy_fragments.ContentFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</RelativeLayout>
这个是主布局。。里面的两个fragment,其实就是name引用两个Fragment类的实例。。类似于:
public class TitleFragment extends Fragment{private ImageButton mLeftMenu;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){View view = inflater.inflate(R.layout.fragment_title, container, false);mLeftMenu = (ImageButton) view.findViewById(R.id.id_title_left_btn);mLeftMenu.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){Toast.makeText(getActivity(),"i am an ImageButton in TitleFragment ! ",Toast.LENGTH_SHORT).show();}});return view;}}这个Fragment里面,其实也是布局了一个layout的,因为是用Fragment,这个主布局中的小布局,有了自己的布局事件,有了生命周期,等等。从这个可以看出,Fragment创建的布局就像是Activity的小弟。这个fragment,是专来布局Fragment的专用标签。两个名字只是为了好识别。谁让布局文件的默认首字母都是小写的。还有,要说的是,FrameLayout是布局标签,fragment是控件标签,这两个只是字母有点象,别的半毛钱关系没有。
例子二:
例子三:
复杂布局中的控件通信
- Fragment
- Fragment
- fragment
- Fragment
- Fragment
- Fragment
- Fragment
- fragment
- fragment
- Fragment
- Fragment
- fragment
- Fragment
- Fragment
- Fragment
- Fragment
- Fragment
- fragment
- java恢复备份mysql数据库
- jquery 向上(顶部),向下(底部)滑动
- NetworkSocket C# 网络通讯 组件
- 黑马程序员----Java中的if嵌套语句
- 用遗传算法加强足球游戏的人工智能
- Fragment
- 怎样可以很好的将PDF转为Excel格式
- 【已解决】C盘-系统引导盘扩大容量
- UML建模之时序图(Sequence Diagram)
- px和dip和dp
- leetcode144 Binary Tree Preorder Traversal
- Java取当前月的最后一天
- 中国联通沃任意邮箱账户登录(免密码永久控制沃通行证可发私信短信) ---管管侠
- 2015.5.19方程也是类