【问题标题】:Check whether the scrollview is scrolling in android检查scrollview是否在android中滚动
【发布时间】:2016-01-05 09:37:56
【问题描述】:

有一个滚动视图包含一个带有文本视图集的线性布局。

然后我设置了一个计时器,每 0.1 秒运行一次,如果滚动视图不是 ontouch ,则运行一些函数

这是我创建计时器的方法

handler = new Handler();

r = new Runnable() {
    @Override
    public void run() {
        s.post(new Runnable() {
            @Override
            public void run() {

                //run some function if not on touch;

                handler.postDelayed(r, 100);
            }
        });
    }
};

handler.postDelayed(r, 100);

问题是如何检查scrollview当时是否ontouch,有一个setOnTouchListener,但是可以在特定时间检查ontouch吗?

感谢您的帮助

【问题讨论】:

  • 我对你想要达到的目标有点困惑;知道可以帮助我帮助你。您是否使用Runnable 来检查ScrollView 是否正在滚动?
  • 你能解释一下你想做的事情吗?
  • 当然,runnable是将滚动视图滚动到特定位置

标签: android android-layout touch scrollview


【解决方案1】:

您可以将触摸时的滚动视图保存在布尔变量中,在 onTouch 中更新其值并跟踪标志以执行您喜欢的操作。

like say -
//global declaration
Public Boolean scrollviewFlag=false;

//inside onCreate activity

Below is the code to check the touch event of scrollView.

 ScrollView scroll = (ScrollView) findViewById(R.id.scrollView);

    scroll.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_UP && tochedView != null) {
                Log.i("Touche", "ScrollView ACTION_UP"); 
                srollviewFlag=true;               
                return true;
            }
            srollviewFlag=false;     
            return false;
        }
    });

【讨论】:

  • 只有在触摸时才是真的,但是否有任何“非触摸”事件?感谢您的帮助
  • 在你所说的每个时间间隔之后,调用 setOnTouchListener 并检查布尔标志值是否为真。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-08
  • 1970-01-01
  • 1970-01-01
  • 2015-02-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多