我使用的是WebView
,里面有WebView
,在纵向模式下,它显示的是一个页面,但是当我切换到横向模式时,它显示的是当前页面的一半和前一页面的一半。
我在清单中使用了android:configChanges="orientation|screenSize"
,以避免破坏和重新创建viewpager。
适配器
class ViewPageAdapter(
private val tabs: ArrayList<Tab>, childFragmentManager: FragmentManager, lifecycle: Lifecycle
): FragmentStateAdapter(childFragmentManager, lifecycle) {
override fun getItemCount(): Int = tabs.size
override fun createFragment(position: Int): Fragment {
return tabs[position].fragment
}
override fun containsItem(itemId: Long): Boolean {
return tabs.map { it.tabId }.contains(itemId)
}
override fun getItemId(position: Int): Long {
return tabs[position].tabId
}
fun removeItem(index: Int) {
tabs.removeAt(index)
notifyItemRemoved(index)
notifyItemRangeChanged(index, tabs.size)
notifyDataSetChanged()
}
}
字符串
设置视图页
adapter = ViewPageAdapter(browser.tabs, childFragmentManager, lifecycle)
binding.viewPager.adapter = adapter
binding.viewPager.offscreenPageLimit = 100
binding.viewPager.isUserInputEnabled = false
型
100d1x
的字符串
2条答案
按热度按时间cig3rfwq1#
这似乎是一个bug在
ViewPager2
. https://issuetracker.google.com/issues/175796502?pli=1我使用了下面的解决方法暂时修复了这个问题。问题发生在我有上一页的时候,所以我所做的是切换到上一页,然后切换回当前页面,没有平滑滚动,我希望他们能尽快修复这个错误。
字符串
svujldwt2#
这是解决这个问题的Java代码
字符串