From 2a5dfbd73bf78d95249cde7102b64a939cc4be11 Mon Sep 17 00:00:00 2001 From: kangshulong <1095887643@qq.com> Date: Sat, 7 Feb 2026 18:07:41 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BA=8C=E7=BA=A7=E8=8F=9C=E5=8D=95=E7=BF=BB?= =?UTF-8?q?=E9=A1=B5=E8=87=AA=E5=8A=A8=E8=8E=B7=E5=8F=96=E9=A6=96=E4=B8=AA?= =?UTF-8?q?item=E7=84=A6=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/fragment/AppsFragment.java | 20 ++++++++++++++++++- .../ui/fragment/LocalFragment.java | 17 ++++++++++++++++ .../ui/fragment/MusicFragment.java | 17 ++++++++++++++++ .../ui/fragment/RecommendFragment.java | 19 ++++++++++++++++++ .../ui/fragment/VideoFragment.java | 18 +++++++++++++++++ 5 files changed, 90 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/ik/mboxlauncher/ui/fragment/AppsFragment.java b/app/src/main/java/com/ik/mboxlauncher/ui/fragment/AppsFragment.java index 87538f6..49d4aaf 100644 --- a/app/src/main/java/com/ik/mboxlauncher/ui/fragment/AppsFragment.java +++ b/app/src/main/java/com/ik/mboxlauncher/ui/fragment/AppsFragment.java @@ -3,9 +3,11 @@ package com.ik.mboxlauncher.ui.fragment; import android.content.Intent; import android.view.KeyEvent; import android.view.View; +import android.view.ViewTreeObserver; import android.widget.Toast; import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import com.android.database.lib.AppBean; import com.android.eventbaus.MessageEvent; @@ -61,6 +63,7 @@ public class AppsFragment extends CategoryFragment { @Override protected void initData() { + LogUtils.loge("initData===>AppsFragment"); loadAppInfoByCategory(AppManager.CATEGORY_MYAPPS); } @@ -88,6 +91,21 @@ public class AppsFragment extends CategoryFragment { // 使用过滤后的列表更新适配器 mMyAppInfoAdapter.addDatas(filteredList); } + gv_category_apps.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + gv_category_apps.getViewTreeObserver().removeOnGlobalLayoutListener(this); + gv_category_apps.scrollToPosition(0); + gv_category_apps.post(()->{ + int firstVisibleItemPosition = ((GridLayoutManager) gv_category_apps.getLayoutManager()).findFirstVisibleItemPosition(); + RecyclerView.ViewHolder holderview = gv_category_apps.findViewHolderForAdapterPosition(firstVisibleItemPosition); + if(holderview !=null){ + View targetView = holderview.itemView; + targetView.post(() -> targetView.requestFocus()); + } + }); + } + }); // if(data!=null){ // List appBeanList = (List) data; // mMyAppInfoAdapter.addDatas(appBeanList); @@ -102,7 +120,7 @@ public class AppsFragment extends CategoryFragment { public void onResumeFragment(MessageEvent event) { super.onResumeFragment(event); loadAppInfoByCategory(AppManager.CATEGORY_MYAPPS);//重新加载数据 - + LogUtils.loge("onResumeFragment===>AppsFragment"); } diff --git a/app/src/main/java/com/ik/mboxlauncher/ui/fragment/LocalFragment.java b/app/src/main/java/com/ik/mboxlauncher/ui/fragment/LocalFragment.java index 60fc6b2..fad3682 100644 --- a/app/src/main/java/com/ik/mboxlauncher/ui/fragment/LocalFragment.java +++ b/app/src/main/java/com/ik/mboxlauncher/ui/fragment/LocalFragment.java @@ -3,9 +3,11 @@ package com.ik.mboxlauncher.ui.fragment; import android.content.Intent; import android.view.KeyEvent; import android.view.View; +import android.view.ViewTreeObserver; import android.widget.Toast; import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import com.android.database.lib.AppBean; import com.android.database.lib.LocalAppBean; @@ -69,6 +71,21 @@ public class LocalFragment extends CategoryFragment { appBeanList.add(new LocalAppBean()); mLocalAppAdapter.addDatas(appBeanList); } + gv_category_apps.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + gv_category_apps.getViewTreeObserver().removeOnGlobalLayoutListener(this); + gv_category_apps.scrollToPosition(0); + gv_category_apps.post(()->{ + int firstVisibleItemPosition = ((GridLayoutManager) gv_category_apps.getLayoutManager()).findFirstVisibleItemPosition(); + RecyclerView.ViewHolder holderview = gv_category_apps.findViewHolderForAdapterPosition(firstVisibleItemPosition); + if(holderview !=null){ + View targetView = holderview.itemView; + targetView.post(() -> targetView.requestFocus()); + } + }); + } + }); super.onResult(data); } diff --git a/app/src/main/java/com/ik/mboxlauncher/ui/fragment/MusicFragment.java b/app/src/main/java/com/ik/mboxlauncher/ui/fragment/MusicFragment.java index 76b91db..90b5b28 100644 --- a/app/src/main/java/com/ik/mboxlauncher/ui/fragment/MusicFragment.java +++ b/app/src/main/java/com/ik/mboxlauncher/ui/fragment/MusicFragment.java @@ -3,9 +3,11 @@ package com.ik.mboxlauncher.ui.fragment; import android.content.Intent; import android.view.KeyEvent; import android.view.View; +import android.view.ViewTreeObserver; import android.widget.Toast; import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import com.android.database.lib.AppBean; import com.android.database.lib.MusicAppBean; @@ -67,6 +69,21 @@ public class MusicFragment extends CategoryFragment { appBeanList.add(new MusicAppBean()); mMusicAppAdapter.addDatas(appBeanList); } + gv_category_apps.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + gv_category_apps.getViewTreeObserver().removeOnGlobalLayoutListener(this); + gv_category_apps.scrollToPosition(0); + gv_category_apps.post(()->{ + int firstVisibleItemPosition = ((GridLayoutManager) gv_category_apps.getLayoutManager()).findFirstVisibleItemPosition(); + RecyclerView.ViewHolder holderview = gv_category_apps.findViewHolderForAdapterPosition(firstVisibleItemPosition); + if(holderview !=null){ + View targetView = holderview.itemView; + targetView.post(() -> targetView.requestFocus()); + } + }); + } + }); super.onResult(data); } diff --git a/app/src/main/java/com/ik/mboxlauncher/ui/fragment/RecommendFragment.java b/app/src/main/java/com/ik/mboxlauncher/ui/fragment/RecommendFragment.java index ac2ee1a..1946cf6 100644 --- a/app/src/main/java/com/ik/mboxlauncher/ui/fragment/RecommendFragment.java +++ b/app/src/main/java/com/ik/mboxlauncher/ui/fragment/RecommendFragment.java @@ -3,14 +3,17 @@ package com.ik.mboxlauncher.ui.fragment; import android.content.Intent; import android.view.KeyEvent; import android.view.View; +import android.view.ViewTreeObserver; import android.widget.Toast; import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import com.android.database.lib.AppBean; import com.android.database.lib.RecommendAppBean; import com.android.eventbaus.MessageEvent; import com.android.nebulasdk.AppManager; +import com.android.util.GsonUtil; import com.android.util.IntentUtil; import com.android.util.LogUtils; import com.ik.mboxlauncher.R; @@ -66,6 +69,22 @@ public class RecommendFragment extends CategoryFragment { appBeanList.add(new RecommendAppBean()); mRecommendAppAdapter.addDatas(appBeanList); } + gv_category_apps.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + gv_category_apps.getViewTreeObserver().removeOnGlobalLayoutListener(this); + LogUtils.loge("onGlobalLayout===>RecommendFragment"+ GsonUtil.GsonString(data)); + gv_category_apps.scrollToPosition(0); + gv_category_apps.post(()->{ + int firstVisibleItemPosition = ((GridLayoutManager) gv_category_apps.getLayoutManager()).findFirstVisibleItemPosition(); + RecyclerView.ViewHolder holderview = gv_category_apps.findViewHolderForAdapterPosition(firstVisibleItemPosition); + if(holderview !=null){ + View targetView = holderview.itemView; + targetView.post(() -> targetView.requestFocus()); + } + }); + } + }); super.onResult(data); } diff --git a/app/src/main/java/com/ik/mboxlauncher/ui/fragment/VideoFragment.java b/app/src/main/java/com/ik/mboxlauncher/ui/fragment/VideoFragment.java index 5af5f19..4099ef1 100644 --- a/app/src/main/java/com/ik/mboxlauncher/ui/fragment/VideoFragment.java +++ b/app/src/main/java/com/ik/mboxlauncher/ui/fragment/VideoFragment.java @@ -3,9 +3,11 @@ package com.ik.mboxlauncher.ui.fragment; import android.content.Intent; import android.view.KeyEvent; import android.view.View; +import android.view.ViewTreeObserver; import android.widget.Toast; import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import com.android.database.lib.AppBean; import com.android.database.lib.VideoAppBean; @@ -67,6 +69,22 @@ public class VideoFragment extends CategoryFragment { appBeanList.add(new VideoAppBean()); mVideoAppAdapter.addDatas(appBeanList); } + gv_category_apps.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + + @Override + public void onGlobalLayout() { + gv_category_apps.getViewTreeObserver().removeOnGlobalLayoutListener(this); + gv_category_apps.scrollToPosition(0); + gv_category_apps.post(()->{ + int firstVisibleItemPosition = ((GridLayoutManager) gv_category_apps.getLayoutManager()).findFirstVisibleItemPosition(); + RecyclerView.ViewHolder holderview = gv_category_apps.findViewHolderForAdapterPosition(firstVisibleItemPosition); + if(holderview !=null){ + View targetView = holderview.itemView; + targetView.post(() -> targetView.requestFocus()); + } + }); + } + }); super.onResult(data); }