无法在Android中调整按钮宽度?

时间:2014-03-01 01:50:23

标签: android button

   Button btnDone = new Button(Mcontex);
    btnDone.setWidth(100);      //Not working
            btnDone.setMinimumWidth(20);     //also not working
    btnDone.setGravity(Gravity.RIGHT);  // Not button move, just text move
    btnDone.setText("Done");
    btnDone.setTextColor(Color.WHITE);

  layoutbutton.addView(btnDone, new LayoutParams(
            android.view.ViewGroup.LayoutParams.WRAP_CONTENT,
            android.view.ViewGroup.LayoutParams.WRAP_CONTENT));

    layoutmain.addView(layoutbutton);

我想将此按钮移动到布局按钮的右侧。我无法调整按钮宽度,这部分我错了。在这段代码中,我认为按钮宽度是填充父级,我无法控制。

3 个答案:

答案 0 :(得分:1)

设置宽度和高度使用:

_btnDone.setLayoutParams(new LayoutParams(
            LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT));

将按钮向右移动,将布局宽度更改为“MATCH_PARENT”并将布局的重力设置为右侧

layoutbutton.setGravity(Gravity.RIGHT);

答案 1 :(得分:0)

你有几个错误。其中之一是你应该使用setLayoutGravity而不是setGravity,因为setGravity会对齐视图中的内容。在您的情况下,正如您在评论中所说,文本(按钮内的内容)正在向右移动。 setLayoutGravity是用于将子项与其父项对齐的正确项。

另一方面,容器视图(layoutButton)的宽度为wrap_content,因此它不会填充整个屏幕宽度,并且具有其子项的大小(在您的情况下为100 px的按钮)。

结论:

- 您必须在按钮中使用setLayoutGravity。

- 将layoutButton layoutParams width切换为MATCH_PARENT。

答案 2 :(得分:0)

假设你的layoutButton视图是LinearLayout,你应该这样做:

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT);


layoutParams.gravity = Gravity.RIGHT;

layoutbutton.addView(btnDone,layoutParams);