我正在使用具有多個可點擊視圖的 AndroidX viewpager。一切都在除錯application時完美運行,proguard但當我啟用Viewpager 的minifyEnabled true發布application視圖時并沒有改變。尋找 proguard 規則以保持 viewpager 位置?
就像我有一個按鈕和影片一樣,每當我單擊按鈕影片時都會播放。
private fun getCurrentView(viewPager: ViewPager): View? {
try {
val currentItem = viewPager.currentItem
for (i in 0 until viewPager.childCount) {
val child = viewPager.getChildAt(i)
val layoutParams = child.layoutParams as ViewPager.LayoutParams
val f: Field =
layoutParams.javaClass.getDeclaredField("position") //NoSuchFieldException
f.isAccessible = true
val position = f.get(layoutParams) as Int //IllegalAccessException
if (!layoutParams.isDecor && currentItem == position) {
return child
}
}
} catch (e: NoSuchFieldException) {
Log.e("TAG", e.toString())
} catch (e: IllegalArgumentException) {
Log.e("TAG", e.toString())
} catch (e: IllegalAccessException) {
Log.e("TAG", e.toString())
}
return null
}
uj5u.com熱心網友回復:
解決方案是,如果您啟用 ProGuard 或 R8 將保留您的位置,您需要ViewPager.LayoutParams#position使用以下ProGuard規則防止混淆和縮小。
-keep class androidx.viewpager.widget.ViewPager$LayoutParams { int position; }
快樂編碼
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/407453.html
標籤:
下一篇:亂數生成器反復回傳0
