【发布时间】:2016-02-19 19:53:14
【问题描述】:
我有一个运行良好的嵌套 ViewPager。唯一的问题是,一旦子 ViewPager 位于最后一项并且我进一步滚动,父 ViewPager 就会滚动。我不想要这种行为。
我如何做到这一点?
这是一个示例,在我的 Activity_main.xml 中,我有父 ViewPager,其中包含三个片段页面。
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
在其中一个片段布局中,fragment_categories.xml,我有另一个 ViewPager,它是 Activity_main.xml 中父 viewPager 的子视图,
<android.support.v4.view.ViewPager
android:id="@+id/mViewPager"
android:layout_width="match_parent"
android:layout_height="@dimen/offer_height"
android:layout_marginTop="2dp"
android:overScrollMode="never"/>
一切正常。但是当子 viewPager 到达它的最后一项时,我滚动更多,父 viewPager 移动到下一页。我不想要这个。我之前尝试通过拦截父 ViewPager 上的触摸来做到这一点,但这没有用。我猜我做错了吗? (是的,我将xml中的标签更改为com.project.CustomViewPager并尝试了这个。)
CustomViewPager.java:
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
if(v != this && v instanceof ViewPager) {
return false;
}
return super.canScroll(v, checkV, dx, x, y);
}
【问题讨论】:
-
始终在您的工作中包含代码块
标签: android android-layout android-viewpager