• launcher5.0-view结构


    参考:http://blog.csdn.net/wdaming1986/article/details/7671318

    http://www.cnblogs.com/DonkeyTomy/articles/3229764.html

    查看Launcher.xml 

    <FrameLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher5"
    
        android:id="@+id/launcher"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/workspace_bg">
    
        <com.android.launcher2.DragLayer
            android:id="@+id/drag_layer"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true">
    
            <!-- Keep these behind the workspace so that they are not visible when
                 we go into AllApps -->
            <include
                android:id="@+id/dock_divider"
                layout="@layout/workspace_divider"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="@dimen/button_bar_height"
                android:layout_gravity="bottom" />
    
            <include
                android:id="@+id/paged_view_indicator"
                layout="@layout/scroll_indicator"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom"
                android:layout_marginBottom="@dimen/button_bar_height" />
    
            <!-- The workspace contains 5 screens of cells -->
            <com.android.launcher2.Workspace
                android:id="@+id/workspace"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingStart="@dimen/workspace_left_padding"
                android:paddingEnd="@dimen/workspace_right_padding"
                android:paddingTop="@dimen/workspace_top_padding"
                android:paddingBottom="@dimen/workspace_bottom_padding"
                launcher:defaultScreen="2"
                launcher:cellCountX="@integer/cell_count_x"
                launcher:cellCountY="@integer/cell_count_y"
                launcher:pageSpacing="@dimen/workspace_page_spacing"
                launcher:scrollIndicatorPaddingLeft="@dimen/workspace_divider_padding_left"
                launcher:scrollIndicatorPaddingRight="@dimen/workspace_divider_padding_right">
    
                <include android:id="@+id/cell1" layout="@layout/workspace_screen" />
                <include android:id="@+id/cell2" layout="@layout/workspace_screen" />
                <include android:id="@+id/cell3" layout="@layout/workspace_screen" />
                <include android:id="@+id/cell4" layout="@layout/workspace_screen" />
                <include android:id="@+id/cell5" layout="@layout/workspace_screen" />
            </com.android.launcher2.Workspace>
    
            
            <!-- 下部快捷icon -->
            <include layout="@layout/hotseat"
                android:id="@+id/hotseat"
                android:layout_width="match_parent"
                android:layout_height="@dimen/button_bar_height_plus_padding"
                android:layout_gravity="bottom" />
    
            <include
                android:id="@+id/qsb_bar"
                layout="@layout/qsb_bar" />
    
            <!-- The Workspace cling must appear under the AppsCustomizePagedView below to ensure
                 that it is still visible during the transition to AllApps and doesn't overlay on
                 top of that view. -->
            <include layout="@layout/workspace_cling"
                android:id="@+id/workspace_cling"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:visibility="gone" />
    
            <include layout="@layout/folder_cling"
                android:id="@+id/folder_cling"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:visibility="gone" />
    
            <com.android.launcher2.DrawableStateProxyView
                android:id="@+id/voice_button_proxy"
                android:layout_width="80dp"
                android:layout_height="@dimen/qsb_bar_height"
                android:layout_gravity="top|end"
                android:clickable="true"
                android:onClick="onClickVoiceButton"
                android:importantForAccessibility="no"
                launcher:sourceViewId="@+id/voice_button" />
    
            <include layout="@layout/apps_customize_pane"
                android:id="@+id/apps_customize_pane"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:visibility="invisible" />
        </com.android.launcher2.DragLayer>
    </FrameLayout>

    了解桌面的整体结构 

    com.android.launcher2.DragLayer 

    整个布局的根,DragLayer继承了FrameLayout,所以DragLayer本身可以看作是一个FrameLayout。

    dock_divider

    翻页指示滑动条。include包含了另外一个布局文件workspace_divider.xml ,而这个workspace_divider.xml包含了一ImageView。

    paged_view_indicato

    翻页指示滑动条上的蓝色滑块。同样它包含了scroll_indicator.xml,其中包含了一个ImageView

    com.android.launcher2.Workspace

    核心桌面,包含5个桌面项(workspace_screen)

    hotseat

    底部快捷icon图标区域

    qsb_bar

    顶部的搜索框。包含搜索view(qsb_search_bar)和内容下拉view(drag_target_bar)

    workspace_cling  和 folder_cling

    刚刷完机后,进入桌面时,显示的使用向导界面,介绍怎么使用workspace和folder,跳过以后就再也不会出现了

    com.android.launcher2.DrawableStateProxyView 

    5.0新加入的view吧,个人认为是为了voice按钮点击范围做的一个代理view,点击此view执行点击搜索按钮的功能

    apps_customize_pane

    点击底部快捷图标allapp按钮后,显示所有应用程序的按钮后才会从隐藏状态转换为显示状态,显示所有应用程序和所有插件的界面。

  • 相关阅读:
    Mongoexport导出数据,Mongoimport导入数据,mongodump备份数据,mongorestore恢复恢复
    php7中使用mongodb的驱动
    windows(X64)+apche2.4+php7.2下安装mongodb
    windows(X64)下安装apche2.4+php7.2+mysql5.7
    Django2.0 path与Django1.x版本url正则匹配问题
    Django: ImportError: No module named 'corsheaders'
    linux开启端口
    MySQL 存储过程传参数实现where id in(1,2,3,...)示例
    ubuntu安装pip3
    在Ubuntu 16.04 安装python3.6 环境并设置为默认
  • 原文地址:https://www.cnblogs.com/wjw334/p/4309594.html
Copyright © 2020-2023  润新知