2 ViewPager在Android 2.3中不滚动

Abi*_*han 9 android android-fragments android-2.3-gingerbread android-viewpager android-navigation

我在我的应用程序中使用导航抽屉,其中包含一些碎片,如下图所示.

在此输入图像描述

每个片段包含在另一个ViewPager这是一个ImageSlider,再下面是一个ListView和顶部我使用的SwipeRefreshLayout.我的问题是图像滑块在Android 3.0或更高版本的设备上运行良好,但向左或向右滑动不适用于设备2.3及更低版本,而是调用父ViewPager的滑动,即导航片段.我正在使用支持版本4库来支持低于3.0的设备.除了那一个,所有功能在2.3设备上运行良好.我用谷歌搜索了它,但我在任何地方都没有找到任何帮助.因此,为了让它滚动我应该为此做什么,任何想法/帮助将受到高度赞赏.

Abh*_*k V 1

你可以用它ViewPager作为你的父母ViewPager。这允许孩子ViewPager滚动。

public class CustomViewPager extends ViewPager {

    public CustomViewPager(Context context) {
        super(context);
    }


    public CustomViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }


    @Override
    protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
        try {
            //Handle the issue only in lower versions of android
            if (v != this && v instanceof ViewPager && CJRAppCommonUtility.getOSVersion() < android.os.Build.VERSION_CODES.HONEYCOMB) {
                ViewPager viewPager = (ViewPager) v;
                int currentPage = viewPager.getCurrentItem();
                int size = viewPager.getAdapter().getCount();
                //if ViewPager has reached its end and if user tries to swipe left allow the parent to scroll
                if (currentPage == (size - 1) && dx < 0) {
                    return false;
                }
                //if ViewPager has reached its start and if user tries to swipe right allow the parent to scroll
                else if (currentPage == 0 && dx > 0) {
                    return false;
                } 
                //Allow the child to scroll hence blocking parent scroll
                else {
                    return true;
                }
            } 
            return super.canScroll(v, checkV, dx, x, y);
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Android 开发者网站对处理Viewgroup. 您可以在这里参考:http ://developer.android.com/training/gestures/viewgroup.html

希望能帮助到你!!