簡而言之:我有一個ViewPager,vpOuter顯示有另一個ViewPager,的片段vpInner。用戶應該能夠在片段之間滑動,vpOuter但顯示的片段vpInner只能以編程方式交換?,F(xiàn)在,向上滑動vpInner沒有任何作用,而向外滑動則在's 的片段vpInner之間切換。vpOuter我怎樣才能使刷卡vpInner被識別為在 之間刷卡vpOuter?(兩人ViewPager互不相識)完整的故事:好的,所以我有一個具有三個片段的視圖尋呼機的活動。我們稱它們?yōu)?A、B 和 C?,F(xiàn)在用戶可以在它們之間滑動或使用底部導航。A是我們的“查看器片段”,如果有要顯示的東西,它會顯示一些東西,如果沒有要顯示的東西,它會顯示任何東西,但它一次只會顯示一個東西。A包含一個不可滑動的視圖尋呼機。這背后的原因是我們想要顯示文本和圖像以及誰知道什么,我們?yōu)槲覀兿胍@示的每種媒體類型創(chuà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顯示,一切正常,我可以在片段之間滑動,A沒有問題。BC但是,當NoContentView正在顯示時,我需要有意識地避免滑動時的文本內(nèi)容,否則它不會做任何事情。我怎樣才能讓它總是表現(xiàn)得好像不可滑動的視圖尋呼機不存在一樣?
1 回答

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