旋转屏幕时,Spinner弹出对话框的宽度没有自适应调整。

5
我正在使用一个带有`android:spinnerMode="dropdown"`属性的下拉框`Spinner`。我还设置了`android:configChanges="orientation|keyboardHidden|screenSize"`属性以防止我的`Activity`被重新创建。当我处于`横屏`模式并点击`Spinner`时,它会在`Spinner`底部弹出,宽度与`Spinner`按钮相同。现在,当我将屏幕旋转到竖屏模式时,`Spinner`按钮的宽度会根据屏幕大小而减小,但弹出对话框的宽度不会相应地减小。
竖屏模式屏幕: enter image description here 横屏模式屏幕: enter image description here 我考虑关闭弹出对话框并在屏幕方向改变时重新打开它,但我没有找到关闭弹出对话框的方法。

你能否在横屏模式下启动你的应用程序,并查看旋转器的宽度是否与旋转器按钮相同。如果是,你需要使旋转器无效以重新绘制。为什么要自己处理屏幕旋转? - Anis BEN NSIR
什么时候我需要调用Spinner的invalidate方法?你能详细解释一下吗? - Nishant
你尝试在onConfigurationChanged()方法中调用spinner.requestLayout()了吗? - renam.antunes
@renam.antunes,对我来说似乎也不起作用。 - Nishant
2个回答

2

在调用onConfigurationChanged()方法时,需要调用spinner.invalidate();


2

我也遇到了这个问题。最终我在onConfigurationChanged()方法中调用了spinnerAdapter的notifyDatasetChanged()方法,问题得到了解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接