内ViewFlipper滚动型并不虽然使用onTouchEvent工作 [英] ScrollView within ViewFlipper does not work although using onTouchEvent

查看:331
本文介绍了内ViewFlipper滚动型并不虽然使用onTouchEvent工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在这篇文章:
<一href=\"http://stackoverflow.com/questions/3032525/android-scrollview-in-flipper/6231082#6231082\">Android:滚动型的鳍状肢

有人建议设置一个onTouchnListener的滚动型这是一种ViewFlipper的孩子的一部分。

It was suggested to set an onTouchnListener to the ScrollView which is part of a child of a ViewFlipper.

我这样做,并且也采用了相同的逻辑:

I did that and also used the same logic:

    public class MainActivity extends Activity implements OnGestureListener {

// ...

@Override
protected void onCreate(Bundle savedInstanceState) {
    // ...

    this.gestureDetector = new GestureDetector(this);

    // ..

           createViews();
}


private void createViews() {

    LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            displayView = inflater.inflate(R.layout.viewflippercontent, null);

    ScrollView scrollView = (ScrollView) displayView
            .findViewById(R.id.scrollview);

    scrollView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
             if (gestureDetector.onTouchEvent(event)) {
                Log.d("ScrollViewOnTouchListener", "true");                 
                return true;
            } else {
                Log.d("ScrollViewOnTouchListener", "false");
                return false;                       
            }
        }
    });

    // ..
}


@Override
public boolean onTouchEvent(MotionEvent me) {
    Log.d("onTouchEvent", "onTouchEvent");
    return gestureDetector.onTouchEvent(me);
}

public boolean onDown(MotionEvent e) {
    return true;
}

public void onLongPress(MotionEvent e) {
}

public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
        float distanceY) {
    Log.d("onScroll", "onScroll");
    return false;
}

public void onShowPress(MotionEvent e) {
}

public boolean onSingleTapUp(MotionEvent e) {
    return true;
}

}

当我在滚动的ViewFlipper我得到了LogCat中以下的孩子:

When I scroll in the child of the ViewFlipper I get the following in the LogCat:

21 08-07:57:14.581:DEBUG / ScrollViewOnTouchListener(4586):真

08-07 21:57:14.581: DEBUG/ScrollViewOnTouchListener(4586): true

21 08-07:57:14.591:DEBUG / ScrollViewOnTouchListener(4586):假

08-07 21:57:14.591: DEBUG/ScrollViewOnTouchListener(4586): false

21 08-07:57:14.622:DEBUG / ScrollViewOnTouchListener(4586):假

08-07 21:57:14.622: DEBUG/ScrollViewOnTouchListener(4586): false

21 08-07:57:14.646:DEBUG / onScroll(4586):onScroll

08-07 21:57:14.646: DEBUG/onScroll(4586): onScroll

21 08-07:57:14.646:DEBUG / ScrollViewOnTouchListener(4586):假

08-07 21:57:14.646: DEBUG/ScrollViewOnTouchListener(4586): false

21 08-07:57:14.671:DEBUG / onScroll(4586):onScroll

08-07 21:57:14.671: DEBUG/onScroll(4586): onScroll

21 08-07:57:14.671:DEBUG / ScrollViewOnTouchListener(4586):假

08-07 21:57:14.671: DEBUG/ScrollViewOnTouchListener(4586): false

21 08-07:57:14.704:DEBUG / onScroll(4586):onScroll

08-07 21:57:14.704: DEBUG/onScroll(4586): onScroll

21 08-07:57:14.704:DEBUG / ScrollViewOnTouchListener(4586):假

08-07 21:57:14.704: DEBUG/ScrollViewOnTouchListener(4586): false

21 08-07:57:14.731:DEBUG / onScroll(4586):onScroll

08-07 21:57:14.731: DEBUG/onScroll(4586): onScroll

21 08-07:57:14.731:DEBUG / ScrollViewOnTouchListener(4586):假

08-07 21:57:14.731: DEBUG/ScrollViewOnTouchListener(4586): false

21 08-07:57:14.761:DEBUG / onScroll(4586):onScroll

08-07 21:57:14.761: DEBUG/onScroll(4586): onScroll

21 08-07:57:14.761:DEBUG / ScrollViewOnTouchListener(4586):假

08-07 21:57:14.761: DEBUG/ScrollViewOnTouchListener(4586): false

21 08-07:57:14.791:DEBUG / onScroll(4586):onScroll

08-07 21:57:14.791: DEBUG/onScroll(4586): onScroll

21 08-07:57:14.791:DEBUG / ScrollViewOnTouchListener(4586):假

08-07 21:57:14.791: DEBUG/ScrollViewOnTouchListener(4586): false

21 08-07:57:14.791:DEBUG / ScrollViewOnTouchListener(4586):真

08-07 21:57:14.791: DEBUG/ScrollViewOnTouchListener(4586): true

但是没有滚动发生尽管它应该是可能的,因为内容比屏幕大。

However no scrolling takes place although it should be possible since the content is bigger than the screen.

我是什么做错了吗?

推荐答案

在发现这个链接的解决方案 - > <一个href=\"http://stackoverflow.com/questions/13317450/fragment-using-scrollview-inside-relativelayout-ontouch-doesnt-work/18074999#18074999\">Fragment使用滚动里面的RelativeLayout&GT; ontouch不起作用

Found a solution at this link -> Fragment using ScrollView inside RelativeLayout > ontouch doesn't work

添加以下code到您的视图内滚动视图

Add the following code to your view inside scrollview

android:clickable="true"
    android:focusable="true"
    android:focusableInTouchMode="true"

这篇关于内ViewFlipper滚动型并不虽然使用onTouchEvent工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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