Android视图layout_width - 如何以编程方式更改?

时间:2012-04-15 03:58:51

标签: android android-layout

这是我的观点,我希望将layout_width更改为“10dip”。我该如何以编程方式执行此操作? 请注意,这不是LinearLayout,而是View。

<View 
    android:id="@+id/nutrition_bar_filled" 
    android:background="@drawable/green_rectangle" 
    android:layout_height="30dp"
    android:layout_width="50dp"/>       

我知道LayoutParams。如何使用它将宽度设置为10dip?

4 个答案:

答案 0 :(得分:129)

我相信你的问题是只动态改变视图的宽度,而上面的方法会将布局属性完全改为新的,所以我建议首先从视图中获取getLayoutParams(),然后在layoutParams上设置width,最后将layoutParams设置为视图,所以按照以下步骤做同样的事情。

View view = findViewById(R.id.nutrition_bar_filled);
LayoutParams layoutParams = view.getLayoutParams();
layoutParams.width = newWidth;
view.setLayoutParams(layoutParams);

答案 1 :(得分:13)

您也可以像这样设置高度和宽度:

viewinstance.setLayoutParams(new LayoutParams(width, height));

答案 2 :(得分:8)

尝试使用

View view_instance = (View)findViewById(R.id.nutrition_bar_filled);
view_instance.setWidth(10);

使用Layoutparams这样做可以设置宽度和高度,如下所示。

LayoutParams lp = new LayoutParams(10,LayoutParams.wrap_content);
View_instance.setLayoutParams(lp);

答案 3 :(得分:4)

或者简单地说:

view.getLayoutParams().width = 400;
view.requestLayout();