Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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 如何知道用户是否在我的活动之上?_Android - Fatal编程技术网

Android 如何知道用户是否在我的活动之上?

Android 如何知道用户是否在我的活动之上?,android,Android,我正在尝试使用Swiperefreshlayout,它工作得非常完美,但我需要知道用户何时处于我活动的顶端。我在读这篇文章时,发现了一个名为“setOnScrollListener”的方法,但我认为它只适用于ListView。我不使用ListView,我使用的是RelativeLayout,在它里面,我放置卡片布局 我的XML结构如下: Swiperefreshlayout 抽屉布局 相对论 滚动视图 具有不同数据的卡 我试图捕获ScrollView,但它没有setOnScr

我正在尝试使用Swiperefreshlayout,它工作得非常完美,但我需要知道用户何时处于我活动的顶端。我在读这篇文章时,发现了一个名为“setOnScrollListener”的方法,但我认为它只适用于ListView。我不使用ListView,我使用的是RelativeLayout,在它里面,我放置卡片布局

我的XML结构如下:

  • Swiperefreshlayout
    • 抽屉布局
      • 相对论
        • 滚动视图
          • 具有不同数据的卡
我试图捕获ScrollView,但它没有setOnScrollListener

我无法更改为ListView(该活动由合作伙伴创建)。我必须使用卡片查看


有什么帮助吗

子类
swiperFreshLayout
和覆盖
canChildScrollUp
。检索
ScrollView
,并
返回scrollViewInstance.getScrollY()>0。不要忘了在布局中使用您的子类
Swiperefreshlayout
我想我建议您可以在android中使用viewflipper。它可以很容易地表示不同的布局。例如:

flippy.setDisplayedChild(flippy.indexOfChild(findViewById(R.id.Swiperefreshlayout)));
flippy.setDisplayedChild(flippy.indexOfChild(findViewById(R.id.DrawerLayout)));

我做到了,我一切都很好,但是。。。我不需要一个倾听者吗?方法在哪里调用?该方法由系统调用,您不必手动调用。如果您正在使用的代码不起作用,我不知道如何在SwiperFreshLayout和我的子类之间建立关系。。。我发现了一个更简单的方法:scrollView.getViewTreeObserver().addOnScrollChangedListener(新OnScrollChangedListener(){@Override public void onScrollChanged(){int scrollY=scrollView.getScrollY();if(scrollY==0)swipeLayout.setEnabled(true);else swipeLayout.setEnabled(false);};您应该认真研究子类方法。