Fix recycler scroll

pull/137/head
FongMi 2 years ago
parent c3deeb95db
commit 4b7bf03750
  1. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/dialog/DohDialog.java
  2. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/dialog/LiveDialog.java
  3. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/dialog/SiteDialog.java
  4. 5
      app/src/main/java/com/fongmi/android/tv/ui/custom/dialog/TrackDialog.java
  5. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/LiveDialog.java
  6. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/SiteDialog.java

@ -6,6 +6,7 @@ import android.view.WindowManager;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.databinding.DialogDohBinding; import com.fongmi.android.tv.databinding.DialogDohBinding;
import com.fongmi.android.tv.impl.DohCallback; import com.fongmi.android.tv.impl.DohCallback;
import com.fongmi.android.tv.ui.adapter.DohAdapter; import com.fongmi.android.tv.ui.adapter.DohAdapter;
@ -46,7 +47,7 @@ public class DohDialog implements DohAdapter.OnClickListener {
binding.recycler.setAdapter(adapter); binding.recycler.setAdapter(adapter);
binding.recycler.setHasFixedSize(true); binding.recycler.setHasFixedSize(true);
binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 16)); binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 16));
binding.recycler.scrollToPosition(adapter.getSelect()); App.post(() -> binding.recycler.scrollToPosition(adapter.getSelect()), 16);
} }
private void setDialog() { private void setDialog() {

@ -7,6 +7,7 @@ import android.view.WindowManager;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.api.LiveConfig; import com.fongmi.android.tv.api.LiveConfig;
import com.fongmi.android.tv.bean.Live; import com.fongmi.android.tv.bean.Live;
import com.fongmi.android.tv.databinding.DialogLiveBinding; import com.fongmi.android.tv.databinding.DialogLiveBinding;
@ -44,7 +45,7 @@ public class LiveDialog implements LiveAdapter.OnClickListener {
binding.recycler.setHasFixedSize(true); binding.recycler.setHasFixedSize(true);
binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 16)); binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 16));
binding.recycler.setLayoutManager(new GridLayoutManager(dialog.getContext(), 1)); binding.recycler.setLayoutManager(new GridLayoutManager(dialog.getContext(), 1));
binding.recycler.scrollToPosition(LiveConfig.getHomeIndex()); App.post(() -> binding.recycler.scrollToPosition(LiveConfig.getHomeIndex()), 16);
} }
private void setDialog() { private void setDialog() {

@ -10,6 +10,7 @@ import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.R; import com.fongmi.android.tv.R;
import com.fongmi.android.tv.api.ApiConfig; import com.fongmi.android.tv.api.ApiConfig;
import com.fongmi.android.tv.bean.Site; import com.fongmi.android.tv.bean.Site;
@ -94,7 +95,7 @@ public class SiteDialog implements SiteAdapter.OnClickListener, CompoundButton.O
if (decoration != null) binding.recycler.removeItemDecoration(decoration); if (decoration != null) binding.recycler.removeItemDecoration(decoration);
binding.recycler.addItemDecoration(decoration = new SpaceItemDecoration(getCount(), 16)); binding.recycler.addItemDecoration(decoration = new SpaceItemDecoration(getCount(), 16));
binding.recycler.setLayoutManager(new GridLayoutManager(dialog.getContext(), getCount())); binding.recycler.setLayoutManager(new GridLayoutManager(dialog.getContext(), getCount()));
if (!binding.mode.hasFocus()) binding.recycler.scrollToPosition(ApiConfig.getHomeIndex()); if (!binding.mode.hasFocus()) App.post(() -> binding.recycler.scrollToPosition(ApiConfig.getHomeIndex()), 16);
} }
private void setDialog() { private void setDialog() {

@ -10,6 +10,7 @@ import androidx.fragment.app.FragmentActivity;
import androidx.media3.common.Tracks; import androidx.media3.common.Tracks;
import androidx.viewbinding.ViewBinding; import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.bean.Track; import com.fongmi.android.tv.bean.Track;
import com.fongmi.android.tv.databinding.DialogTrackBinding; import com.fongmi.android.tv.databinding.DialogTrackBinding;
import com.fongmi.android.tv.player.Players; import com.fongmi.android.tv.player.Players;
@ -65,9 +66,9 @@ public final class TrackDialog extends BaseDialog implements TrackAdapter.OnClic
@Override @Override
protected void initView() { protected void initView() {
binding.recycler.setHasFixedSize(true); binding.recycler.setHasFixedSize(true);
binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 16));
binding.recycler.setAdapter(adapter.addAll(getTrack())); binding.recycler.setAdapter(adapter.addAll(getTrack()));
binding.recycler.scrollToPosition(adapter.getSelected()); binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 16));
App.post(() -> binding.recycler.scrollToPosition(adapter.getSelected()), 16);
} }
private List<Track> getTrack() { private List<Track> getTrack() {

@ -54,7 +54,7 @@ public class LiveDialog implements LiveAdapter.OnClickListener {
binding.recycler.setAdapter(adapter); binding.recycler.setAdapter(adapter);
binding.recycler.setHasFixedSize(true); binding.recycler.setHasFixedSize(true);
binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 8)); binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 8));
binding.recycler.scrollToPosition(LiveConfig.getHomeIndex()); App.post(() -> binding.recycler.scrollToPosition(LiveConfig.getHomeIndex()), 16);
} }
private void setDialog() { private void setDialog() {

@ -71,7 +71,7 @@ public class SiteDialog implements SiteAdapter.OnClickListener {
binding.recycler.setItemAnimator(null); binding.recycler.setItemAnimator(null);
binding.recycler.setHasFixedSize(true); binding.recycler.setHasFixedSize(true);
binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 8)); binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 8));
binding.recycler.scrollToPosition(ApiConfig.getHomeIndex()); App.post(() -> binding.recycler.scrollToPosition(ApiConfig.getHomeIndex()), 16);
} }
private void setDialog() { private void setDialog() {

Loading…
Cancel
Save