如何以编程方式设置layout_gravity?


问题内容

我的问题很简单

如何以编程方式设置我的按钮layout_gravity?

我在互联网上找到了它,但它只是抛出了一个Nullpointer异常:

 Button MyButton = new Button(this);

    LinearLayout.LayoutParams  lllp=(LinearLayout.LayoutParams)MyButton.getLayoutParams();
    lllp.gravity=Gravity.RIGHT;
    MyButton.setLayoutParams(lllp); 


    MyLinearLayout.addView(MyButton);

有什么办法吗?


问题答案:

Java

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
params.weight = 1.0f;
params.gravity = Gravity.TOP;

button.setLayoutParams(params);

Kotlin

val params = LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.WRAP_CONTENT,
    LinearLayout.LayoutParams.WRAP_CONTENT
).apply {
    weight = 1.0f
    gravity = Gravity.TOP
}

有关重力值以及如何设置重力,请检查“重力”。

基本上,您应该选择LayoutParams依赖于父项。可以是RelativeLayout,LinearLayout等等。