【发布时间】:2013-01-23 05:49:32
【问题描述】:
在我的应用程序中,我在线性布局中有 gridview。由于屏幕尺寸不同,我想计算 gridview 容器的宽度(在线性布局中),然后我会决定屏幕上应该显示多少列。我的问题是。当我写的时候
linearlayout.getwidth();
它返回 0,因为它在 oncreate 方法中获取视图大小还为时过早。
获取视图高度或宽度的干净解决方案是什么。
我试过了
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
int gridSize = display.getWidth();
但是android说它已被弃用:(
【问题讨论】:
-
想想你是否真的需要在
onCreate()方法中拥有它。人们倾向于将所有代码都放入这个方法中,但有时这并不是一个好主意。阅读有关Activity生命周期的更多信息:developer.android.com/reference/android/app/Activity.html -
在初始化视图之前我需要这些信息,因为我想决定在 gridview 中应该显示多少列。所以不是 oncreate 不是 onresume 可以帮助解决这个问题……如果我的问题解释得不好,请告诉我,我会详细解释它,但请帮助帮助。
标签: android view width android-linearlayout