fix详情多源切换时焦点问题

pull/144/head
于俊 1 year ago
parent c6d2c53958
commit 8513940c4e
  1. 13
      app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java
  2. 2
      app/src/main/java/com/github/tvbox/osc/ui/activity/HomeActivity.java
  3. 2
      gradle.properties

@ -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 {

@ -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);
}

@ -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

Loading…
Cancel
Save