[RK3288][Android7.1.2] Launcher3 源码阅读之step6:根据布局文件找到对应的自定义View

来源:互联网 发布:淘宝打印助手怎么样 编辑:程序博客网 时间:2024/04/28 22:58

launcher.xml文件里面有引用了一些自定义View。具体在哪里实施呢?我们根据xml布局文件必须要知道以下的自定义View。

public abstract class BaseRecyclerView        extends RecyclerViewpublic abstract class ButtonDropTarget        extends TextViewpublic abstract class PagedView               extends ViewGrouppublic abstract class PageIndicator           extends FrameLayoutpublic abstract class BaseContainerView       extends FrameLayoutpublic class InsettableFrameLayout            extends FrameLayoutpublic class Hotseat                          extends FrameLayoutpublic class AllAppsRecyclerViewContainerView extends FrameLayout  public class LauncherRootView                 extends InsettableFrameLayoutpublic class DragLayer                        extends InsettableFrameLayout public class Workspace                        extends PagedViewpublic class DropTargetBar                    extends LinearLayoutpublic class DeleteDropTarget                 extends ButtonDropTargetpublic class ExtendedEditText                 extends EditTextpublic class UninstallDropTarget              extends ButtonDropTargetpublic class InfoDropTarget                   extends UninstallDropTargetpublic class PageIndicatorCaretLandscape      extends PageIndicatorpublic class WidgetsContainerView             extends BaseContainerViewpublic class AllAppsContainerView             extends BaseContainerViewpublic class WidgetsRecyclerView              extends BaseRecyclerViewpublic class AllAppsRecyclerView              extends BaseRecyclerViewpublic class CellLayout                       extends ViewGroup

这里简单说明一下: 有五个类是继承了 FrameLayout 帧布局。也就是说,这些类是在帧布局的基础上再分化出来的。

在  FrameLayout 家族树形的结构如下:共计10个类

FrameLayout ---> PageIndicator                    ---> PageIndicatorCaretLandscapeFrameLayout ---> BaseContainerView                ---> WidgetsContainerViewFrameLayout ---> BaseContainerView                ---> AllAppsContainerViewFrameLayout ---> InsettableFrameLayout            ---> LauncherRootViewFrameLayout ---> InsettableFrameLayout            ---> DragLayerFrameLayout ---> AllAppsRecyclerViewContainerViewFrameLayout ---> Hotseat

RecyclerView 家族树形结构如下:共计3个类

RecyclerView ---> BaseRecyclerView ---> WidgetsRecyclerViewRecyclerView ---> BaseRecyclerView ---> AllAppsRecyclerView

TextView 家族树形结构如下:共计4个类

TextView ---> ButtonDropTarget ---> DeleteDropTargetTextView ---> ButtonDropTarget ---> UninstallDropTargetTextView ---> ButtonDropTarget ---> UninstallDropTarget ---> InfoDropTarget

ViewGroup 树形结构:

ViewGroup ---> PagedView ---> WorkspaceViewGroup ---> CellLayout
EditText 树形结构:

EditText ---> ExtendedEditText
LinearLayout 树形结构:

LinearLayout ---> DropTargetBar


这样,我们就会知道大致这些自定义View的祖宗都是些什么了。这会很好帮助我们分析这些自定义View。
阅读全文
1 0
原创粉丝点击