簡(jiǎn)而言之:我有一個(gè)ViewPager,vpOuter顯示有另一個(gè)ViewPager,的片段vpInner。用戶應(yīng)該能夠在片段之間滑動(dòng),vpOuter但顯示的片段vpInner只能以編程方式交換。現(xiàn)在,向上滑動(dòng)vpInner沒有任何作用,而向外滑動(dòng)則在's 的片段vpInner之間切換。vpOuter我怎樣才能使刷卡vpInner被識(shí)別為在 之間刷卡vpOuter?(兩人ViewPager互不相識(shí))完整的故事:好的,所以我有一個(gè)具有三個(gè)片段的視圖尋呼機(jī)的活動(dòng)。我們稱它們?yōu)?A、B 和 C?,F(xiàn)在用戶可以在它們之間滑動(dòng)或使用底部導(dǎo)航。A是我們的“查看器片段”,如果有要顯示的東西,它會(huì)顯示一些東西,如果沒有要顯示的東西,它會(huì)顯示任何東西,但它一次只會(huì)顯示一個(gè)東西。A包含一個(gè)不可滑動(dòng)的視圖尋呼機(jī)。這背后的原因是我們想要顯示文本和圖像以及誰知道什么,我們?yōu)槲覀兿胍@示的每種媒體類型創(chuàng)建一個(gè)視圖片段。所以當(dāng)我們有一些東西要顯示時(shí),我們檢查那個(gè)東西是什么,切換到相應(yīng)的片段并用數(shù)據(jù)填充它。結(jié)果,A 將如下所示:<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <[...].android.ui.widgets.NonswipableViewPager android:id="@+id/view_container" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> <!--irrrelevant floating action button here--></android.support.design.widget.CoordinatorLayout>在哪里/**A view pager that disables swiping to switch between pages. * Switching must happen programmatically.*/class NonswipableViewPager:ViewPager{ constructor(context:Context):super(context) constructor(context: Context,attributeSet: AttributeSet):super(context,attributeSet) override fun onInterceptTouchEvent(ev: MotionEvent?): Boolean { return false } override fun onTouchEvent(ev: MotionEvent?): Boolean { return false }}讓我們假設(shè)只有我們想要顯示的文本內(nèi)容。如果有TextContentView顯示,一切正常,我可以在片段之間滑動(dòng),A沒有問題。BC但是,當(dāng)NoContentView正在顯示時(shí),我需要有意識(shí)地避免滑動(dòng)時(shí)的文本內(nèi)容,否則它不會(huì)做任何事情。我怎樣才能讓它總是表現(xiàn)得好像不可滑動(dòng)的視圖尋呼機(jī)不存在一樣?
1 回答

qq_花開花謝_0
TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
這里的問題是由于外部 ViewPager 感應(yīng)到它具有可以向同一方向滾動(dòng)的可滾動(dòng)內(nèi)容,因此外部 ViewPager 拒絕向該方向滾動(dòng)。
這可以通過canScrollHorizontally(int direction)
在內(nèi)部 ViewPager 中重寫以返回 false 來解決。
添加回答
舉報(bào)
0/150
提交
取消