我在显示键盘时无法调整对话框片段的大小/折叠。我在使用Android 30等特定API时遇到了这个问题,但在使用Android 27等较旧的API时没有遇到这个问题。我提供了下面的截图,我可以确认这会影响我的应用中特定API的所有对话框片段。
Android API 30 Dialog Screenshot (The resize issue)
Android API 27 Dialog Screenshot (The desired functionality)
编辑:Tom Ladek指出,这个问题只发生在SDK 30上。SDK的29及以下版本不受影响。
2条答案
按热度按时间pbgvytdp1#
关键可能在于创建对话框。当你扩展
DialogFragment
时,你只需要创建一个新的该类型的Object,在它上面调用show
,就可以了。在那个片段的onCreateView
中,你膨胀了你的普通片段布局文件。因此,如果应用创建的对话框带有自定义片段,并且在打开软输入时不会调整大小,即使是在API级别30(可能是更高级别)上,该应用也可能如下所示:
MainActivity
:LoginFragment
:activity_main
:fragment_dialogcontent
:nvbavucw2#
我在我的应用程序中遇到了同样的问题。但我发现我的对话框布局是ConstraintLayout,并在下面设置。
我尝试了很多网络上的解决方案。最后,我认为布局会因为键盘显示和父布局缩小而改变高度。所以我决定以编程方式设置对话框的高度。我在对话框启动期间触发了setLayout函数。我认为你可以将高度设置为设备屏幕的高度。