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