0
所以這個問題很簡單,我有一個ViewPager,它包含5個不同的片段,每個片段都有一個RecyclerView。我可以滑動頁面,它們會顯示自己的數據。RecyclerView內部ViewPager中的片段攔截其他頁面事件
事情是我只能先滾動RecyclerView(page 0)。當我嘗試在另一個頁面上滾動時,它不在該頁面中,但在第一個頁面中。項目點擊次數相同。
任何人都已經遇到過這個問題?如果要求
感謝
所以這個問題很簡單,我有一個ViewPager,它包含5個不同的片段,每個片段都有一個RecyclerView。我可以滑動頁面,它們會顯示自己的數據。RecyclerView內部ViewPager中的片段攔截其他頁面事件
事情是我只能先滾動RecyclerView(page 0)。當我嘗試在另一個頁面上滾動時,它不在該頁面中,但在第一個頁面中。項目點擊次數相同。
任何人都已經遇到過這個問題?如果要求
感謝
謝謝你的關心CrowsNet我可以張貼代碼,我想通了,這是什麼。
它是由我ViewPager變壓器造成的,我用的是庫
compile 'com.ToxicBakery.viewpager.transforms:view-pager-transforms:[email protected]'
當我使用它似乎ViewPager更新的意見和選擇的項目,但所有觸摸事件,留在第一頁的庫。然後我做了一個自定義ViewPager變壓器(從https://developer.android.com/training/animation/screen-slide.html更新),它工作正常。所以我剛擺脫圖書館,我只需要一個轉換。
的onCreate的代碼在我的活動
@UiThread
override fun onCreate(savedInstanceState: Bundle?) {
setContentView(R.layout.activity_home)
super.onCreate(savedInstanceState)
setSupportActionBar(toolbar)
// other declarations
[...]
// ViewPager and Tabs initialization
mHomePageAdapter = HomePagerAdapter(supportFragmentManager)
view_pager?.adapter = mHomePageAdapter
view_pager?.offscreenPageLimit = 4
view_pager?.setOnTouchListener(this)
// works, the one from Google, updated : https://code.google.com/p/android/issues/detail?id=58918
view_pager?.setPageTransformer(false, DepthPageTransformer(), ViewCompat.LAYER_TYPE_HARDWARE)
// doesn't work - from library
view_pager?.setPageTransformer(true, FlipHorizontalTransformer(), ViewCompat.LAYER_TYPE_HARDWARE)
// note that I've tried every combination of the function setPageTransformer (1, 2, 3 arguments)
tab_layout?.setupWithViewPager(view_pager)
val onTabSelectedListener = HomeTabSelectedListener()
tab_layout?.addOnTabSelectedListener(onTabSelectedListener)
onTabSelectedListener.onTabSelected(tab_layout?.getTabAt(0)!!)
if (savedInstanceState != null) {
selectedPage = savedInstanceState.getInt("selected_page")
}
view_pager?.currentItem = selectedPage
[...]
}
請張貼代碼,或者我們不知道是怎麼回事。 – CrowsNet