天天看點

Android Launcher 如何實作桌面居中

前言

         歡迎大家我分享和推薦好用的代碼段~~

聲明

         歡迎轉載,但請保留文章原始出處:

         CSDN:

         雨季o莫憂離:

正文

KK Launcher3的wallpaper顯示是動态的,與Launcher預置桌面數目有關,讓桌面居中,隻能確定第一次開機時桌面居中,後面使用者修改桌面數目後,就無法達到了。如何要在預設桌面數目配置時居中,可以參考下面方法,以default一屏為例:

Launcher3的workspace.java檔案替換下面的函數

private void updateOffset(boolean force) {

            if (mWaitingForUpdate || force) {

                mWaitingForUpdate = false;

    LauncherLog.d(TAG, "updateOffset: mWallpaperOffset = " + mWallpaperOffset.getCurrX());

                if (computeScrollOffset() && mWindowToken != null) {

                    try {

       if (getChildCount() <= 1) {

           LauncherLog.d(TAG, "wallpaperOffset 111");

                 mWallpaperManager.setWallpaperOffsets(mWindowToken,

                               /* mWallpaperOffset.getCurrX()*/0.5f, 0.5f);

         }else{

                             LauncherLog.d(TAG, "wallpaperOffset 222");

                             mWallpaperManager.setWallpaperOffsets(mWindowToken,

                               mWallpaperOffset.getCurrX(), 0.5f);

             }

                        setWallpaperOffsetSteps();

                    } catch (IllegalArgumentException e) {

                        Log.e(TAG, "Error updating wallpaper offset: " + e);

                    }

                }

            }

        }