From 8513940c4ed4397edd1cca4a7bc6fb8392c2fdb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8E=E4=BF=8A?= <215613905@qq.com> Date: Thu, 3 Apr 2025 10:59:57 +0800 Subject: [PATCH] =?UTF-8?q?fix=E8=AF=A6=E6=83=85=E5=A4=9A=E6=BA=90?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E6=97=B6=E7=84=A6=E7=82=B9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tvbox/osc/ui/activity/DetailActivity.java | 13 ++++++++++++- .../github/tvbox/osc/ui/activity/HomeActivity.java | 2 +- gradle.properties | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java index 925cdb8b..1dcdcaad 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java @@ -191,6 +191,7 @@ public class DetailActivity extends BaseActivity { getSupportFragmentManager().beginTransaction().show(playFragment).commitAllowingStateLoss(); tvPlay.setText("全屏"); } + llPlayerFragmentContainerBlock.setFocusable(showPreview); mSeriesGroupView = findViewById(R.id.mSeriesGroupView); tvSeriesGroup = findViewById(R.id.mSeriesGroupTv); @@ -353,6 +354,16 @@ public class DetailActivity extends BaseActivity { public void onItemClick(TvRecyclerView parent, View itemView, int position) { } }); + mGridView.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + if (hasFocus && vodInfo.playIndex != -1) { + // 当获得焦点且有目标位置时,执行滚动和聚焦 + LOG.i("echo-onFocusChange"); + mGridView.setSelection(vodInfo.playIndex); + } + } + }); mGridViewFlag.setOnItemListener(new TvRecyclerView.OnItemListener() { private void refresh(View itemView, int position) { String newFlag = seriesFlagAdapter.getData().get(position).name; @@ -374,6 +385,7 @@ public class DetailActivity extends BaseActivity { vodInfo.playFlag = newFlag; seriesFlagAdapter.notifyItemChanged(position); refreshList(); + mGridView.clearFocus(); } seriesFlagFocus = itemView; } @@ -475,7 +487,6 @@ public class DetailActivity extends BaseActivity { } }); - llPlayerFragmentContainerBlock.setFocusable(showPreview); if(showPreview){ llPlayerFragmentContainerBlock.requestFocus(); }else { diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/HomeActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/HomeActivity.java index 2a6cfc69..0e375cb5 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/HomeActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/HomeActivity.java @@ -346,7 +346,7 @@ public class HomeActivity extends BaseActivity { @Override public void run() { Toast.makeText(HomeActivity.this, msg+"; 尝试加载最近一次的jar", Toast.LENGTH_SHORT).show(); - initData(); + refreshHome(); } },50); } diff --git a/gradle.properties b/gradle.properties index 8b1a2183..e86424f0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,4 +17,4 @@ android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX android.enableJetifier=true IsDebug=true -#org.gradle.jvmargs=-Xmx2048m --add-opens java.base/java.io=ALL-UNNAMED +org.gradle.jvmargs=-Xmx2048m --add-opens java.base/java.io=ALL-UNNAMED