我的问题很简单,

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

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

 Button MyButton = new Button(this);

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


    MyLinearLayout.addView(MyButton);

有解决方案吗?


当前回答

我从LinearLayout切换过来。LayoutParams to RelativeLayout。LayoutParams来最终得到我在创建的自定义圆环视图上想要的结果。

但是你用的不是gravity而是addRule

RelativeLayout。mCircleParams = new RelativeLayout.LayoutParams(circleheight,circleheight);

    mCircleParams.addRule(RelativeLayout.CENTER_IN_PARENT);

其他回答

Java

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

button.setLayoutParams(params);

科特林

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

对于重力值和如何设置重力检查重力。

基本上,你应该根据父类选择LayoutParams。它可以是RelativeLayout, LinearLayout等等…

MyButton.setGravity(Gravity.RIGHT);

对于layout_gravity使用“karthi”给出的答案。这个方法设置重力以将子视图放置在视图中。

如果你需要为视图设置重力,请使用以下方法

Button b=new Button(Context);
b.setGravity(Gravity.CENTER);

用于设置按钮的layout_gravity 为布局参数使用重力场

LayoutParams lp=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
lp.gravity=Gravity.CENTER;

试试这个 希望天气晴朗 谢谢

layoutParams2.gravity = Gravity.RIGHT|Gravity.BOTTOM;

用它来增加一个以上的重力

 int width=getResources().getDisplayMetrics().widthPixels; 
 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams
                    (width, width);

            params.gravity = Gravity.CENTER;

           iv_main_text = new HTextView(getContext());
            iv_main_text.setLayoutParams(params);
            iv_main_text.setBackgroundColor(Color.BLUE);
            iv_main_text.setTextSize(60);
            iv_main_text.setGravity(Gravity.CENTER);
            iv_main_text.setTextColor(Color.BLACK);