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);
我想将此按钮移动到布局按钮的右侧。我无法调整按钮宽度,这部分我错了。在这段代码中,我认为按钮宽度是填充父级,我无法控制。
答案 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);