2013-02-23 77 views
1

我想將listView的寬度設置爲移動屏幕寬度的40%。由於40%在不同手機中的像素不同,我將無法在xml佈局文件中設置寬度。有沒有什麼辦法以編程方式爲列表設置寬度Android以編程方式更改視圖的寬度

+0

我想你設置了listview的權重 – 2013-02-23 06:01:39

+0

不,那不是我想要的。因爲我的列表視圖最初會出現在屏幕之外,並且只有在單擊按鈕時纔會出現 – user2041902 2013-02-23 06:04:47

+0

您應該重申您的問題並指定您希望在運行時添加列表視圖,因爲這與您最初提出的問題有很大不同。 – Daniel 2013-02-23 06:15:40

回答

0

實際上,您通常可以使用layout_weight來以XML格式執行此操作。有關說明,請參閱Linear Layout guide。幾件事情要記住:

  1. 確保您設置的大小,(layout_width的水平佈局,layout_height爲垂直的一)以0dp所以它不會與動態佈局干涉。
  2. 您通常會在佈局中的其他視圖上加權,以便佔用剩餘的60%。如果不是,您可以定義一個weight sum
0
Display display = getWindowManager().getDefaultDisplay(); 
int width = (display.getWidth()*40)/100; 

你必須通過setparam越來越寬u必須設置成你的代碼後,通過上面的代碼來獲得屏幕寬度尺寸。

+0

我嘗試設置,但似乎有一個問題,因爲視圖不能被看到if參數是以編程方式設置的。我在xml中創建視圖本身並嘗試更改xml中的參數....可以發佈您用於設置參數的代碼 – user2041902 2013-02-23 06:31:51

+0

看到這個鏈接hopefulfull給你 – duggu 2013-02-23 06:35:12

0

您可以通過編程讓屏幕寬度,然後讓屏幕寬度的40%,並創下向ListView。而如果你想做到這一點使用XML,然後使用LinearLayout並設置android:weightSum爲此,然後用weight.Using這樣你就可以輕鬆做到這一點。

爲了讓屏幕重量的40%

Display display= ((WindowManager)getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
    int width = (display.getWidth()*40)/100; 

設定重量爲視圖XML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#ffffff" 
    android:orientation="vertical" 
    android:weightSum="100" > 
    <Button android:layout_width="wrap_content" 
    android:layout_height="0dp" 
    android:layout_weight="50" 
    android:text="button1"/> 
    <Button android:layout_width="wrap_content" 
    android:layout_height="0dp" 
    android:layout_weight="50" 
    android:text="button2"/> 
</LinearLayout> 
0

您的意見和PARAMS術語概念的錯誤。您可以通過編程方式設置不同類型的寬度,您可以在xml佈局中設置它。以編程方式將佈局參數設置爲視圖的優點僅僅是在運行時更改視圖佈局參數的可能性。 你的問題的解決方案很容易,你只需要把你的listView放在一個LinearLayout裏面,並將它的權重設置爲.4

相關問題