ScrollView 回到顶部
ScrollView get back to top
所以我的 scrollView 只有一个视图 (EditText),我想实现
dispatchTouchEvent(MotionEvent me)
View current_view = Processor.findViewGroupWithPoint(
(int) me.getRawX(), (int) me.getRawY(), rmodel.layout.parent);
if (current_view instanceof ScrollView) {
switch( me.getAction() ){
case MotionEvent.ACTION_DOWN:
Log.d(TAG, " down");
((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_DOWN);
break;
case MotionEvent.ACTION_UP:
Log.d(TAG, " up");
((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_UP);
break;
}
}
我的问题是,当我向下滚动时,它可以工作,但我必须将手指放在屏幕上,就像我将其移开一样,它会回到滚动视图的顶部。
据我所知,当您放手时它会到达 scrollView 的顶部,因为您告诉它这样做。你说
case MotionEvent.ACTION_UP:
Log.d(TAG, " up");
((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_UP);
MotionEvent.ACTION_UP
用于检测你的手指何时松开,所以当它松开时,你告诉它用
到顶部
((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_UP);
要解决此问题,您真正需要做的就是删除该行...
编辑:
我写了这个,它应该可以工作,可能需要一些调整。
boolean bottom = false;
基本上这里只是创建一个名为 bottom 的布尔值并将其设置为 false ^^
case MotionEvent.ACTION_DOWN:
Log.d(TAG, " down");
if (bottom = false){
((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_DOWN);
}else{
((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_UP);
}
break;
}
这只是看看 ScrollView 是在底部还是现在......希望它有效!
所以我的 scrollView 只有一个视图 (EditText),我想实现
dispatchTouchEvent(MotionEvent me)
View current_view = Processor.findViewGroupWithPoint(
(int) me.getRawX(), (int) me.getRawY(), rmodel.layout.parent);
if (current_view instanceof ScrollView) {
switch( me.getAction() ){
case MotionEvent.ACTION_DOWN:
Log.d(TAG, " down");
((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_DOWN);
break;
case MotionEvent.ACTION_UP:
Log.d(TAG, " up");
((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_UP);
break;
}
}
我的问题是,当我向下滚动时,它可以工作,但我必须将手指放在屏幕上,就像我将其移开一样,它会回到滚动视图的顶部。
据我所知,当您放手时它会到达 scrollView 的顶部,因为您告诉它这样做。你说
case MotionEvent.ACTION_UP:
Log.d(TAG, " up");
((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_UP);
MotionEvent.ACTION_UP
用于检测你的手指何时松开,所以当它松开时,你告诉它用
((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_UP);
要解决此问题,您真正需要做的就是删除该行...
编辑:
我写了这个,它应该可以工作,可能需要一些调整。
boolean bottom = false;
基本上这里只是创建一个名为 bottom 的布尔值并将其设置为 false ^^
case MotionEvent.ACTION_DOWN:
Log.d(TAG, " down");
if (bottom = false){
((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_DOWN);
}else{
((ScrollView) findViewById(111111)).fullScroll(View.FOCUS_UP);
}
break;
}
这只是看看 ScrollView 是在底部还是现在......希望它有效!