Fix scrolling in main screen grid
GridLayoutManager is buggy - https://issuetracker.google.com/issues/37067220: it randomly loses or incorrectly assigns focus when being scrolled via direction-based navigation. This commit reimplements onFocusSearchFailed() on top of scrollBy() to work around that problem. Ordinary touch-based navigation should not be affected.
This commit is contained in:
parent
9429fbfa65
commit
b1aa3b018b
7 changed files with 140 additions and 5 deletions
|
|
@ -35,6 +35,7 @@ import org.schabi.newpipe.util.OnClickGesture;
|
|||
import org.schabi.newpipe.util.StateSaver;
|
||||
import org.schabi.newpipe.util.StreamDialogEntry;
|
||||
import org.schabi.newpipe.views.SuperScrollLayoutManager;
|
||||
import org.schabi.newpipe.views.FixedGridLayoutManager;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Queue;
|
||||
|
|
@ -156,7 +157,7 @@ public abstract class BaseListFragment<I, N> extends BaseStateFragment<I> implem
|
|||
int width = resources.getDimensionPixelSize(R.dimen.video_item_grid_thumbnail_image_width);
|
||||
width += (24 * resources.getDisplayMetrics().density);
|
||||
final int spanCount = (int) Math.floor(resources.getDisplayMetrics().widthPixels / (double)width);
|
||||
final GridLayoutManager lm = new GridLayoutManager(activity, spanCount);
|
||||
final GridLayoutManager lm = new FixedGridLayoutManager(activity, spanCount);
|
||||
lm.setSpanSizeLookup(infoListAdapter.getSpanSizeLookup(spanCount));
|
||||
return lm;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue