[英]linear layout (View) Size in android
在我的應用程序中,我在linearlayout中有gridview。 由於屏幕大小不同,我要計算gridview容器的寬度(以linearlayout表示),然后我將決定屏幕上應顯示多少列。 我的問題是。 當我寫
linearlayout.getwidth();
它返回0,其原因是為時過早,無法在oncreate方法中獲得視圖的大小。
什么是獲得視圖高度或寬度的干凈解決方案。
我試過了
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
int gridSize = display.getWidth();
但android表示其已棄用:(
從API 13開始不推薦使用Display.getWidth()
和Display.getHeight()
,而推薦使用Display.getSize(Point)
。 為了與兩者兼容,您必須進行版本檢查並選擇適當的版本。
這是我的方法:
Point size = new Point();
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
if (Build.VERSION.SDK_INT >= 13) {
display.getSize(size); // API 13+
} else {
size.x = display.getWidth();
size.y = display.getHeight();
}
然后, size.x
是您的寬度。 (不要忘記在方法簽名之前添加@TargetApi(13) @SuppressWarnings("deprecation")
。)
請記住,這是單位的顯示寬度; 如果您只想獲取一個視圖的大小,則必須在用戶界面布局后調用它。 這與該答案有點無關,但是您可以在該線程的答案中找到解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.