簡體   English   中英

android中的線性布局(視圖)大小

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM