Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Viewpager在第一项上向左滚动_Android_Android Viewpager - Fatal编程技术网

Android Viewpager在第一项上向左滚动

Android Viewpager在第一项上向左滚动,android,android-viewpager,Android,Android Viewpager,是否可以检测ViewPager的第一项是否尝试向左滚动? 我试图获得一种类似Instagram故事的体验,即在第一个项目向左滚动时,视图关闭 我可以在ViewPager.OnPageChangeListener界面的onPageScrolled方法中保留并填充一个配对列表,并检查位置0是否以0.0滚动了N次,关闭视图,但这听起来是多余的 还有其他建议吗?提前谢谢 private int currentPagePosition = 0; ViewPager.OnPageChangeListener

是否可以检测ViewPager的第一项是否尝试向左滚动?
我试图获得一种类似Instagram故事的体验,即在第一个项目向左滚动时,视图关闭

我可以在
ViewPager.OnPageChangeListener
界面的
onPageScrolled
方法中保留并填充一个配对列表,并检查
位置0是否以0.0
滚动了N次,关闭视图,但这听起来是多余的

还有其他建议吗?提前谢谢

private int currentPagePosition = 0;
ViewPager.OnPageChangeListener onPageChangeListener = new ViewPager.OnPageChangeListener() {

    @Override
    public void onPageScrolled(int i, float v, int i1) {
        // TODO Hold pair list and fill with i and v values
        Log.d("ViewPager", "onPageScrolled from " + i + " by " + v);
    }

    @Override
    public void onPageSelected(int selectedPagePosition) {
        Log.d("ViewPager", "onPageSelected pos: " + selectedPagePosition);
        if (currentPagePosition != selectedPagePosition) {
            // do something
        }
        currentPagePosition = selectedPagePosition;
    }

    @Override
    public void onPageScrollStateChanged(int i) {
        switch (i) {
            case ViewPager.SCROLL_STATE_IDLE:
                if (currentPagePosition == 0) {
                    // TODO if pair list contains N times repeated 0 to 0.0 items close the view
                }
                Log.d("ViewPager", "onPageScrollStateChanged IDLE on " + currentPagePosition);
                break;
            case ViewPager.SCROLL_STATE_DRAGGING:
                Log.d("ViewPager", "onPageScrollStateChanged DRAGGING from " + currentPagePosition);
                break;
        }
    }
};

我认为您需要使用,它将根据页面拖动的方向为您提供带-或+的位置。您只需检测该值符号的变化。

谢谢您的建议,我猜答案是这个问题: