gpt4 book ai didi

java - viewpager2 降低水平滚动的灵敏度

转载 作者:行者123 更新时间:2023-12-03 16:49:35 25 4
gpt4 key购买 nike

如何降低 viewpager2 中水平滚动的灵敏度?

这是目前我的 viewpager 代码。

viewPager = findViewById(id.view_pager);
viewPager.setAdapter(new ViewPagerAdapter(this, dataManager, USERNAME));
tabLayout.setSelectedTabIndicatorColor(ContextCompat.getColor(this, R.color.green));
new TabLayoutMediator(tabLayout, viewPager,
new TabLayoutMediator.TabConfigurationStrategy() {
@Override
public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
tab.setText(tabNames.get(position));
}
}).attach();

最佳答案

我正在寻找同样的东西,发现这个 solution in Kotlin :

val recyclerViewField = ViewPager2::class.java.getDeclaredField("mRecyclerView")
recyclerViewField.isAccessible = true
val recyclerView = recyclerViewField.get(this) as RecyclerView

val touchSlopField = RecyclerView::class.java.getDeclaredField("mTouchSlop")
touchSlopField.isAccessible = true
val touchSlop = touchSlopField.get(recyclerView) as Int
touchSlopField.set(recyclerView, touchSlop*8) // "8" was obtained experimentally

如果你需要 Java,它应该是这样的:
try {
Field recyclerViewField = ViewPager2.class.getDeclaredField("mRecyclerView");
recyclerViewField.setAccessible(true);

RecyclerView recyclerView = (RecyclerView) recyclerViewField.get(myViewPager);

Field touchSlopField = RecyclerView.class.getDeclaredField("mTouchSlop");
touchSlopField.setAccessible(true);

int touchSlop = (int) touchSlopField.get(recyclerView);
touchSlopField.set(recyclerView, touchSlop * 8);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}

这不是一个“好”的解决方案,因为它使用反射 API,但它应该有所帮助。

关于java - viewpager2 降低水平滚动的灵敏度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60660570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com