onFling为一个TextView不工作 [英] onFling for a TextView not working
本文介绍了onFling为一个TextView不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想检测onFling事件一个TextView对象。下面的code完美的作品为onDown事件,但它未能获得onScroll或onFling事件。任何指针?
感谢
包rob.testapp;
进口android.app.Activity;
进口android.os.Bundle;
进口android.view.GestureDetector;
进口android.view.GestureDetector.SimpleOnGestureListener;
进口android.view.MotionEvent;
进口android.view.View;
进口android.widget.TextView;
公共类MainActivity扩展活动
{
私人GestureDetector myGestDetector;
私人TextView的mainTextView;
@覆盖
公共无效的onCreate(包savedInstanceState)
{
super.onCreate(savedInstanceState);
的setContentView(R.layout.main);
myGestDetector =新GestureDetector(这一点,新SimpleOnGestureListener()
{
@覆盖
公共布尔onScroll(MotionEvent E1,E2 MotionEvent,浮velocityX,浮动velocityY)
{
mainTextView.setText(刚scroll'n);
返回false;
}
@覆盖
公共布尔onDown(MotionEvent E1)
{
mainTextView.setText(下来);
返回false;
}
@覆盖
公共布尔onFling(MotionEvent E1,E2 MotionEvent,浮velocityX,浮动velocityY)
{
mainTextView.setText(上一扔);
返回false;
}
});
mainTextView =(TextView中)findViewById(R.id.MainText);
mainTextView.setText(启动应用程序......);
mainTextView.setOnTouchListener(新View.OnTouchListener()
{
@覆盖
公共布尔onTouch(视图V,MotionEvent事件)
{
myGestDetector.onTouchEvent(事件);
返回false;
}
});
}
}
布局仅仅是一个的LinearLayout里面一个TextView。
解决方案
公共布尔onTouch(视图V,MotionEvent事件)
{
myGestDetector.onTouchEvent(事件);
返回false;
}
我想你应该在这里返回true。您可以通过返回false视图拒绝指针向下事件,并没有收到,因为这以后的任何事件。
I'm trying to detect an onFling event for a TextView object. The code below works perfectly for the onDown event, however it fails to get the onScroll or onFling events. Any pointers?
Thanks
package rob.testapp;
import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends Activity
{
private GestureDetector myGestDetector;
private TextView mainTextView;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myGestDetector = new GestureDetector(this, new SimpleOnGestureListener()
{
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
{
mainTextView.setText("just scroll'n");
return false;
}
@Override
public boolean onDown(MotionEvent e1)
{
mainTextView.setText("on down");
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
{
mainTextView.setText("on fling");
return false;
}
});
mainTextView = (TextView)findViewById(R.id.MainText);
mainTextView.setText("Starting app...");
mainTextView.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
myGestDetector.onTouchEvent(event);
return false;
}
});
}
}
The layout is just a TextView inside a LinearLayout.
解决方案
public boolean onTouch(View v, MotionEvent event)
{
myGestDetector.onTouchEvent(event);
return false;
}
I think you should return true here. You view rejects pointer down event by returning false and don't receive any subsequent events because of this.
这篇关于onFling为一个TextView不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文