你可以认为Fragment作为Activity的一个模块部分,有它自己的生命周期,获取它自己的事件,并且你可以在Activity运行的时候添加或者移除它(有点像你可以在不同的Activity中重用的一个”子Activity“)。这节课程讲述如何使用Support Library继承Fragment类,所以你的应用程序仍然是兼容运行的系统版本低于Android1.6的设备。
注意:如果你决定你的应用要求的最低的API级别是11或者更高,你不需要使用Support Library,反而能使用Frameword内的Fragment和相关API。要注意,这节课程主要讲使用Support Library的API,它使用特殊的包名,并且有些时候和包含在平台中版本API的名称略有不同。
在你开始这节课程之前,你必须配置你的Android项目使用Support Library。如果之前你没有使用过Support Library,遵照Support Library Setup文档,配置你的项目使用v4 Library。然而,你也能包含在你的Activity中Action Bar
创建Fragment
你可以把一个Fragment想象成一个Activity的模块区域,它有自己的生命周期,接收它自己的输入事件,并且你可以在Activity运行时添加和删除它(这有点像一个子Activity,你可以在不同的Activity中重用它们)。本节课向你介绍如何使用支持类库来扩展Fragment,以便让你的应用程序能够在像Android1.6那样的较旧版本上的兼容性。
注意:如果因为一些原因,你决定你的应用程序需要的API级别在11以上,那么你就不需要使用支持类库,并且可以使用框架内置的Fragment类和相关的API来代替。要注意的是本课的重点是使用支持类库中的API,它使用一个特殊的包签名,并且某些时候API的名称会比包含在平台内的版本有稍微的不同。
创建Fragment类
要创建一个Fragment,就要继承Fragment类,然后重写关键的生命周期方法,把你的应用程序逻辑插入其中,这跟Activity类类似。
创建Fragment时的一个不同点是,你必须使用onCreateView()回调来定义布局。实际上,为了获得一个正在运行的Fragment,这只是你所需要的唯一的回调方法。例如,下面是一个简单的指定了自己布局的Fragment:
import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.ViewGroup; public class ArticleFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.article_view, container, false); } }
就像一个Activity,Fragment应该实现其他的生命周期回调方法,从而允许你管理它在Activity中的状态(添加或删除),以及Activity在它生命周期状态间转换时的状态。例如,当Activity的onPause()方法被调用时,Activity中的任何Fragment也会接收到对onPause()方法的调用。
有关Fragment的生命周期和有效的回调方法,请看Fragments开发指南。
使用XML把一个Fragment添加到一个Activity中
Fragment是可复用的、模块化的UI组件,每个Fragment类的实例都必须跟一个父类是FragmentActivity的Activity相关联。通过在你的Activity布局XML文件内定义每个Fragment可以完成这种关联。
注意:FragmentActivity是一个支持类库中提供的特殊的Activity,它用于处理系统版本是API Level 11以前的Fragment。如果你使用的系统版本最低是API Level 11或更高,那么就就可以使用常规的Activity。
当屏幕被认为足够大时,下例布局文件就会把两个Fragment添加到一个Activity中(该文件被放在由large限定的目录名中)。
res/layout-large/news_articles.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> <fragment android:name="com.example.android.fragments.HeadlinesFragment" android:id="@+id/headlines_fragment" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" /> <fragment android:name="com.example.android.fragments.ArticleFragment" android:id="@+id/article_fragment" android:layout_weight="2" android:layout_width="0dp" android:layout_height="match_parent" /> </LinearLayout>
提示:关于给不同屏幕尺寸创建布局的信息,请看支持不同的屏幕尺寸。
以下是使用这个布局的Activity:
import android.os.Bundle; import android.support.v4.app.FragmentActivity; public class MainActivity extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.news_articles); } }
注意:当你通过在布局XML文件中定义Fragment的方式把Fragment添加给Activity布局时,你不能在运行时删除该Fragment。如果你打算在用户交互期间切换Fragment,你就必须在Activity被首次启动时把Fragment添加到Activity中。
创建一个Fragment的一般步骤: 第1步: 在Layout目录下创建Fragment的布局文件. 第2步: 创建一个类文件,继承Fragment或者Fragment子类,并在onCreateView方法中加载布局文件. 第3步: 在Activity的布局文件中声明FragmentLayout. 使用模板基本上可以自动生成第1步和第2步. 如何使用Android Studio提供的模板快速创建F
从 /core 引入 Component 装饰器 在 中 ,设置selector、template 和 styles 等元数据 template (模板):HTML的一种形式,它告诉Angular如何呈现这个组件。下面的组件会将name变量的值插入到双括号之间的模板中,在视图中呈现的是。 要使用这个组件,我们只需添加到我们的HTML,Angular将插入这些标签之间的视图的实例。 查看示例
Web 插件开发-创建插件 创建入口 录入信息 创建完成 Web 插件开发-创建插件 更新时间:2018-07-03 15:10:10 本章介绍创建一个插件的平台流程。 创建入口 进入插件管理列表页: 本页面用于浏览和管理该项目下自研插件。 点击右上角“新增插件”开始插件的创建操作。 录入信息 填写插件的基本信息: 包含 2 个必填字段: 插件名称 起始版本:默认从 1.0.0 开始 创建完成 在
我开始使用angular cli,我已经读了很多关于我想做什么的答案。。。没有成功,所以我来到这里。 有没有办法为新模块创建组件? 例如: (如何将此组件添加到newModule??) 因为默认行为是将所有新组件放入。我想选择我的组件将在哪里,这样我就可以创建独立的模块,而不会让我的所有组件都在。可以使用angular cli执行此操作,还是必须手动执行此操作?
这是一本讲述kibana插件开发教程类的书籍,写这本书的时候,还没有深入开发过kibana插件,书中难免会出现各种错误,欢迎大家指正交流。
Hyperf 官方提供了工具来快速创建组件包。 # 创建适配 Hyperf 最新版本的组件包 composer create-project hyperf/component-creater your_component dev-master # 创建适配 Hyperf 1.1 版本的组件包 composer create-project hyperf/component-creater you