这是我的观点,我希望将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?
答案 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();