如何在代码中设置android:layout_weight和android:layout_width?

Fra*_*ick 9 android android-layout

有人可以告诉我如何在动态创建的视图的代码中设置android:layout_weight和android:layout_width XML属性?

参考:XML表格布局?两个EQUAL宽度的行填充相同宽度的按钮?

小智 18

使用ViewGroup.LayoutParams.

LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT, 
                                   LayoutParams.WRAP_CONTENT);
myview.setLayoutParams(lp);
Run Code Online (Sandbox Code Playgroud)

您还可以在构造函数中指定固定像素大小,而不是常量.但由于设备种类繁多,固定像素在Android上是一个坏主意.

你可以从一个dp大小计算像素,这是好的:

float pixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 
                                         10, getResources.getDisplayMetrics());
Run Code Online (Sandbox Code Playgroud)

(这里:将10dp转换为像素值)