繁体   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