在我的Android应用程序中,我有一个包含嵌套片段的活动,该活动具有以下属性:
android:windowSoftInputMode="adjustResize"
其中一个嵌套片段包含一个按钮,当按下该按钮时,将在该按钮所在的正上方打开一个对话框片段。
在打开软键盘的同时按下此按钮时,软键盘将自动关闭。 但是,我遇到的问题是,将在软键盘关闭之前而不是在软键盘关闭且屏幕重绘完成之后根据按钮的位置绘制对话框片段。
到目前为止,我所做的是:
我发现的是,当调用onLayoutChange()时,屏幕尚未完全重绘-软键盘已关闭,但按钮并未移向屏幕底部(即,有空白空间)键盘在哪里)。
因此,我需要知道屏幕何时完成重新绘制,以便在打开对话框片段之前确保按钮处于正确的位置。
谢谢。
答案 0 :(得分:0)
您可以为ButtonView而非片段实现View.OnLayoutChangeListener
答案 1 :(得分:0)
我相信我现在对此有解决方案...
据我了解,之所以可行,是因为onReceive()函数是在UI线程中调用的,这意味着它将在同一线程中执行,但最重要的是,屏幕重绘之后。