解决切换语言后退回桌面,ALL APPS界面和时间桌面重叠问题

首先通过打印log分析具体操作对应着packages/apps/Launcher3/src/com/android/launcher3/Launcher.java中怎样的代码流程

1. 在设置中切换语言->代码中会走入方法setLoadOnResume()中

2. 从设置中回到ALL APPS界面->代码会走入方法onResume()中,进入mOnResumeState==State.APPS判断条件中

3. 解锁进入桌面->代码会走入方法onResume()中,进入mOnResumeState!=State.APPS判断条件中

4. 点击ALL APPS button->代码走入onClickAllAppsButton

5. 点击返回按钮->代码走入onBackPressed

具体代码添加如下

void showWorkspaceSearchAndHotseat(){
    if(mWorkspace!=null) mWorkspace.setAlpha(1f);
    if(mHotseat!=null) mHotseat.setAlpha(1f);
}

void hideWorkspaceSearchAndHotseat(){
    if(mWorkspace!=null) mWorkspace.setAlpha(0f);
    if(mHotseat!=null) mHotseat.setAlpha(0f);
}

在onResume()方法中,判断条件mOnResumeState==State.WORKSPACE中添加
showWorkspaceSearchAndHotseat();

在onResume()方法中,判断条件mOnResumeState==State.APPS中添加
hideWorkspaceSearchAndHotseat();

在onResume()方法中,在mOnResumeState==State.WIDGETS判断条件之后添加
else{
    if(isAppsViewVisible()){
        hideWorkspaceSearchAndHotseat();
    }else{
        showWorkspaceSearchAndHotseat();
    }
}

在onBackPressed()方法中添加
showWorkspaceSearchAndHotseat();

你可能感兴趣的:(android,launcher)