一、 开场白:为啥Activity它不香了?
想象一下这个场景:你正在开发一个山寨版“知乎”(我们姑且叫它“懂乎”吧)。在手机上,首页是一个问题列表,点击一个问题就跳到详情页。这用两个Activity就能轻松搞定,Perfect!
但有一天,产品经理戴着他的劳力士绿水鬼,兴冲冲地跑过来说:“老板们!我们的App要上平板和折叠屏!在平板上,左边是问题列表,右边直接显示详情,这才叫高端!”
你脸上的笑容瞬间凝固。如果用Activity来实现,你需要在平板上写一个全新的、超级复杂的Activity,把列表和详情的布局和逻辑全部塞进去。那手机版的代码怎么办?复制粘贴?然后维护两套几乎一样的逻辑?Oh My God,想到这,你的头发已经开始隐隐作痛。
就在这时,Fragment,脚踏七彩祥云,闪亮登场!它就像一块万能乐高积木。
Activity是地板,Fragment是地上的乐高模型。 你可以在地板上(Activity)随心所欲地拼接、替换、移除这些积木(Fragment)。在手机上,你的“地板”只放一块“列表积木”,点击后换成“详情积木”;在平板上,你的“地板”够大,可以同时摆上“列表积木”和“详情积木”。
所以,Fragment的核心价值就是:模块化、复用性、灵活性。它让UI组件不再是Activity的附庸,而是可以独立组合、灵活调配的“自由民”。
二、 创建你的第一块“乐高积木”:从零开始写一个Fragment
创建一块Fragment,就跟捏一个Activity小人差不多,分三步走:
第1步:定义布局文件(捏脸)
首先,得给你的Fragment设计一张“脸”。比如,我们要创建一个显示文章标题的Fragment。
新建 fragment_article_title.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="80dp"
android:orientation="horizontal"
android:background="#F5F5F5"
android:padding="16dp">
<ImageView
android:id="@+id/iv_icon"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/ic_article" />
<TextView
android:id="@+id/tv_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:text="这是文章的标题"
android:textSize="18sp"

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



