[英]Android change width of view programmatically
我想將listView的寬度設置為移動屏幕寬度的40%。 由於40%的像素在不同的手機中會有所不同,因此我將無法在xml布局文件中設置寬度。 有沒有辦法以編程方式設置listView的寬度
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.