Android 软键盘关闭后如何检测屏幕重画完成
在我的Android应用程序中,我有一个包含嵌套片段的活动,该活动的属性为:Android 软键盘关闭后如何检测屏幕重画完成,android,android-fragments,android-view,Android,Android Fragments,Android View,在我的Android应用程序中,我有一个包含嵌套片段的活动,该活动的属性为: android:windowSoftInputMode="adjustResize" 其中一个嵌套片段包含一个按钮,按下该按钮时,将在按钮所在位置的正上方打开一个对话框片段 当软键盘打开时按下此按钮,软键盘将自动关闭但是,我遇到的问题是,对话框片段将在软键盘关闭之前根据按钮的位置绘制,而不是在软键盘关闭且屏幕重画完成之后绘制。 到目前为止,我所做的是: 在onClick事件中,检查软键盘是否打开-如果打开,不要立即
android:windowSoftInputMode="adjustResize"
其中一个嵌套片段包含一个按钮,按下该按钮时,将在按钮所在位置的正上方打开一个对话框片段
当软键盘打开时按下此按钮,软键盘将自动关闭但是,我遇到的问题是,对话框片段将在软键盘关闭之前根据按钮的位置绘制,而不是在软键盘关闭且屏幕重画完成之后绘制。
到目前为止,我所做的是:
- 在onClick事件中,检查软键盘是否打开-如果打开,不要立即打开对话框片段(而是设置一个标志)
- 片段实现View.OnLayoutChangeListener-调用onLayoutChange()时,它会检查标志以查看是否需要打开对话框片段(如果需要,则此时它会获取按钮的坐标,并打开对话框片段)
提前感谢。您可以为您的按钮实现View.OnLayoutChangeListener View而不是Fragment我相信我现在有了一个解决方案
据我所知,这是因为onReceive()函数是在UI线程中调用的,这意味着它将在同一线程中执行,但最重要的是,在屏幕被重新绘制之后。感谢您的建议,但这对我仍然不起作用-当在我的Button类中调用onLayoutChange()时,它还没有被重新绘制。