【问题标题】:Android - dispatchTouchEvent gives me a StackOverflowErrorAndroid - dispatchTouchEvent 给了我一个 StackOverflowError
【发布时间】:2012-07-14 18:12:47
【问题描述】:

在这里,我有一个 ViewFlipper 和一个工作正常的 setOnTouchListener。然后我为 ReLayNewsItem 充气,然后将其添加到 ViewFlipper。

现在我希望 WebView (web) 监听触摸事件并将它们传递给 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;
        }});

但它给了我这个 -

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)
...

有什么想法吗?谢谢! ;)

【问题讨论】:

  • "StackOverflow" 错误是最好的 ;-)

标签: android


【解决方案1】:

如果您返回false,则表示该事件未处理

根据您的需要尝试在onTouch 方法中返回trueVFnewsFeed.dispatchTouchEvent(event) 而不是false

Reference to documentatnion

【讨论】:

  • 尝试了 true 和 VFnewsFeed.dispatchTouchEvent(event),同样的错误。 :(
  • 并没有真正明白。你认为应该用 onInterceptTouchEvent 来完成?
猜你喜欢
  • 2016-03-26
  • 2020-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-13
  • 1970-01-01
  • 2012-10-10
  • 1970-01-01
相关资源
最近更新 更多