我想在 onConfigurationChanged 之后获取 GridView 的宽度和高度,所以当我将设备从横向切换到纵向时,我想获取网格的新宽度和高度值
最佳答案
参见 How to get NEW width/height of root layout in onConfigurationChanged?
View 不会在 onResume() 中重绘 - 绘制 View 不是此生命周期的一部分 (http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle)。您需要使用 android.view.ViewTreeObserver.OnGlobalLayoutListener
以便在重新绘制 View 时收到通知。
但请注意,我观察到此方法并不总是按预期工作。配置更改(旋转)后,如果我不删除监听器,该方法将触发 3 次 - 前 2 次具有旧值,第 3 次具有新值。如果我在收到通知后立即删除监听器,我仍然会得到旧值。 (但如果您不删除监听器,您可能需要实现一些 hack 以防止代码再次运行。)
关于android - onConfigurationChanged后如何获取GridView的宽高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14321260/