程序员

Activity托管Fragment的流程、由来与相互关系

2018-03-22  本文已影响34人  柳源居士

1.理解
托管:
Activity有自己的View,Fragment也有自身的View,但是Fragment自身不具有显示在屏幕的能力。Activity有SetContentView()方法。
Fragment要把自身的View嵌入到Activity的view层级结构里,才能显示。
Activity的View需要提供一处位置来放置Fragment的View。

UI Fragment:
管理用户界面的fragment被称为UI Fragment。
创建UI Fragment:

  1. 含义
    FragmentActivity:
  1. 关系
    support.V4 提供了2个重要的类:FragmentFragmentActivity
    要使用fragment,activity必须知道如何管理fragment。
    FragmentActivity知道如何管理支持的Fragment。
    support.V7 提供了: AppCompatActivity

获得FragmentManager的方式
Android 3.0以下:getSupportFragmentManager()
Android 3.0以上:getFragmentManager()

  1. some others:
    Activity is the base class of all other activities, I don't think it will be deprecated.
    The relationship among them is:
    Activity <<<FragmentActivity <<< AppCompatActivity <<< ActionBarActivity
    '<<<' means inheritance(继承) here.
    The reference said ActionBarActivity is deprecated(不被赞成的),
    use AppCompatActivity instead.
    So basically, using AppCompatActivity is always the right choise.

The differences between them:

ActionBarActivity已经过时,被他的父类AppCompatActivity 代替,所以Active继承AppCompatActivity 就OK。

  1. 回炉巩固
    再巩固一下 依赖 的语义结构:
    使用了Maven的坐标模式:groupId:artifactId:version
dependencies{
  compile 'com.android.support:support-v4:22.+'
}

groupId:
groupId通常是类库的基础包名,唯一标示了Maven仓库中的依赖类库,比如com.android.support
artifactId: (artifact :n. 人工制品,手工艺品,加工品; 石器;)
artifactId是包中的特定库名,如上例中的support-v4。com.android.support包中有很多不同的库,如support-v7,support-v13,appcompat-v7等等。Google使用basename-vX模式来作为支持库的命名约定。-vX指所支持的最低API级别。
version:
version是指类库的版本号。可以用+号来模糊具体版本。

上一篇下一篇

猜你喜欢

热点阅读