簡體   English   中英

Android以編程方式更改視圖寬度

[英]Android change width of view programmatically

我想將listView的寬度設置為移動屏幕寬度的40%。 由於40%的像素在不同的手機中會有所不同,因此我將無法在xml布局文件中設置寬度。 有沒有辦法以編程方式設置listView的寬度

實際上,通常您可以使用layout_weight在XML中執行此操作。 有關說明,請參見《 線性布局》指南 請記住以下幾點:

  1. 請確保您設置的大小,( layout_width的水平布局, layout_height對於一個垂直)以0dp所以它不會與動態布局干涉。
  2. 通常,您將對布局中的其他視圖進行加權,以使它們占據其余的60%。 但是,如果沒有,則可以定義權重和
Display display = getWindowManager().getDefaultDisplay();
int width = (display.getWidth()*40)/100;

獲取寬度后,必須通過上述代碼獲取屏幕寬度大小,而必須通過setparam將其設置為代碼。

您可以通過編程獲取屏幕寬度,然后獲取屏幕寬度的40%並設置為ListView 。如果您想使用xml進行此操作,請使用LinearLayout並為此設置android:weightSum然后使用weight。使用這種方式可以做到這一點容易。

獲得屏幕重量的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>

在視圖及其參數方面存在概念錯誤。 您可以通過編程設置各種寬度,也可以在xml布局中進行設置。 以編程方式為視圖設置布局參數的優點僅僅是可以在運行時更改視圖布局參數。 解決問題的方法很簡單,只需將listView放在LinearLayout中並將其權重設置為.4。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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