内ViewFlipper滚动型并不虽然使用onTouchEvent工作 [英] ScrollView within ViewFlipper does not work although using 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屋!