好了,我有一个应用程序,需要访问基本的滑动手势。我使用从StackOverflow中搜集的代码实现了一个GestureDetector,然后对其进行了修改(以使其能够正常工作)。要让它工作,它需要窃取Touch事件。
最初,我检测onScroll事件之类的,并试图将它们传递给需要滚动的元素,但这真的很不稳定,并且从来没有按我想要的数量滚动,所以我在读取触摸事件后,开始简单地将它们传递给超类。这导致了非常奇怪的行为,一些元素根本没有滚动过(不知道为什么),所以我开始以3种方式传递事件……一些用于超类,一些用于手势检测器,还有一些用于需要滚动的屏幕视图!是啊,一团糟,但一切都很顺利。除了..。
如果你触摸EditText的底部(除了appbar,它是全屏的),那么当键盘出现并向上滚动EditText时,应用程序栏就会滚动到屏幕上(状态栏图标的正下方……看起来很奇怪,因为它们相互重叠),而我不能让它回滚。这也意味着我无法访问我的菜单或剪切/复制图标。滚动关闭时按下菜单键会使应用程序崩溃。
你知道怎么阻止AppBar在屏幕上滚动吗?
@Override
public boolean dispatchTouchEvent(MotionEvent me) {
int top = dm.heightPixels - myEditText.getMeasuredHeight();
MotionEvent mod = MotionEvent.obtain(me.getDownTime(), me.getEventTime(),
me.getAction(), me.getX(), me.getY()-top, me.getMetaState());
if (me.getY() <= top)
return super.dispatchTouchEvent(me);
myEditText.onTouchEvent(mod);
return this.detector.onTouchEvent(me);
}发布于 2015-05-06 06:26:14
好了,这似乎解决了这个问题!在活动清单中...
android:windowSoftInputMode="adjustResize"Bamn!没有更多的问题了!
https://stackoverflow.com/questions/30064125
复制相似问题