Android的 - dispatchTouchEvent给我的StackOverflowError [英] Android - dispatchTouchEvent gives me a StackOverflowError

查看:558
本文介绍了Android的 - dispatchTouchEvent给我的StackOverflowError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在这里,我有工作正常一个setOnTouchListener一个ViewFlipper。然后我膨胀ReLayNewsItem,后来我把它添加到ViewFlipper。

Here I have a ViewFlipper with a setOnTouchListener that works fine. Then I inflate ReLayNewsItem and later I add it to ViewFlipper.

现在我想的WebView(网络)侦听触摸事件,并将它们传递到ViewFlipper。

Now I want WebView (web) to listen for touch events and pass them on to the ViewFlipper.

    final ViewFlipper VFnewsFeed = new ViewFlipper(this);

    VFnewsFeed.setOnTouchListener(new OnTouchListener(){
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (gestureDetectorLR.onTouchEvent(event)) { return true; }
            else { return true; }
        }});

    ///////////////////

    LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    RelativeLayout ReLayNewsItem = (RelativeLayout) inflater.inflate(R.layout.newsitem, null); 

    final WebView web = (WebView)ReLayNewsItem.findViewById(R.id.NewsItemWv);

    web.setOnTouchListener(new OnTouchListener(){
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            VFnewsFeed.dispatchTouchEvent(event); /// ERROR HERE!
            return false;
        }});

然而,它给了我这一点 -

Yet it gives me this -

07-14 21:12:43.600: E/AndroidRuntime(14048): FATAL EXCEPTION: main
07-14 21:12:43.600: E/AndroidRuntime(14048): java.lang.StackOverflowError
07-14 21:12:43.600: E/AndroidRuntime(14048):    at life.iface.main$11.onTouch(main.java:1289)
07-14 21:12:43.600: E/AndroidRuntime(14048):    at android.view.View.dispatchTouchEvent(View.java:4605)
07-14 21:12:43.600: E/AndroidRuntime(14048):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1518)
07-14 21:12:43.600: E/AndroidRuntime(14048):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1320)
...

任何想法?谢谢! ;)

Any ideas? Thanks! ;)

推荐答案

如果您返回这意味着该事件的未处理

If you return false it means that the event is unhandled.

根据您的需要尝试返回真正 VFnewsFeed.dispatchTouchEvent(事件) onTouch 方法,而不是

Depending on your needs try to return true or VFnewsFeed.dispatchTouchEvent(event) in onTouch method instead of false.

<一个href=\"http://developer.android.com/reference/android/view/View.OnTouchListener.html#onTouch%28android.view.View,%20android.view.MotionEvent%29\"相对=nofollow>引用documentatnion

这篇关于Android的 - dispatchTouchEvent给我的StackOverflowError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆