美文网首页
Launcher3-oreo 源码分析

Launcher3-oreo 源码分析

作者: 异域的梅 | 来源:发表于2019-04-15 16:01 被阅读0次

    launcher源码,在源码基础上二次开发 ,以下是修改记录:

    1.横竖屏控制Launcher.java类中,修改如下方法:

    @Thunk void setOrientation() {
        if (mRotationEnabled) {
            unlockScreenOrientation(true);
        } else {
            setRequestedOrientation(
                    ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
        }
    }
    

    2.隐藏主屏Google搜索栏,FeatureFlags.java修改如下:

    // Feature flag to enable moving the QSB on the 0th screen of the workspace.
    public static final boolean QSB_ON_FIRST_SCREEN = false;
    

    3.隐藏抽屉页面搜索及line,修改AlphabeticalAppsList.java 类中注释掉

        // Add the search divider
        mAdapterItems.add(AdapterItem.asSearchDivider(position++));
    

    all_apps.xml中,隐藏如下代码:

      <FrameLayout
                android:id="@+id/search_container"
                android:layout_width="match_parent"
                android:layout_height="@dimen/all_apps_search_bar_height"
                android:layout_gravity="center|top"
                android:gravity="center|bottom"
                android:visibility="gone"
                android:orientation="horizontal"
                android:saveEnabled="false">
    

    4.隐藏app长按弹出的popup例如应用信息,微件等,Workspace.java类中注释beginDragShared方法中:

    //        if (child instanceof BubbleTextView && !dragOptions.isAccessibleDrag) {
    //            PopupContainerWithArrow popupContainer = PopupContainerWithArrow
    //                    .showForIcon((BubbleTextView) child);
    //            if (popupContainer != null) {
    //                dragOptions.preDragCondition = popupContainer.createPreDragCondition();
    //
    //                mLauncher.getUserEventDispatcher().resetElapsedContainerMillis();
    //            }
    //        }
    

    5.配置桌面默认显示时钟微件,default_workspace找到对应的默认文件:

      <!-- 普通设备 -->
        <appwidget
            launcher:className="com.android.alarmclock.DigitalAppWidgetProvider"
            launcher:packageName="com.android.deskclock"
            launcher:screen="1"
            launcher:spanX="3"
            launcher:spanY="1"
            launcher:x="0"
            launcher:y="0" />
    
    
        <!--华为设备-->
        <appwidget
            launcher:className="com.android.alarmclock.DigitalClockAppWidgetProvider"
            launcher:packageName="com.android.deskclock"
            launcher:screen="0"
            launcher:spanX="3"
            launcher:spanY="1"
            launcher:x="0"
            launcher:y="0" />
    

    特别值得注意的是:default_workspace_33.xml default_workspace_44.xml default_workspace_55.xml default_workspace_56.xml找准对应的布局,这个不难做到,另外配置的packageName 和className如果与对应设备不匹配就会导致桌面不显示。

    相关文章

      网友评论

          本文标题:Launcher3-oreo 源码分析

          本文链接:https://www.haomeiwen.com/subject/igfpeqtx.html