我正在尝试添加此按钮
Button dalsi_akce = new Button(this);
dalsi_akce.setGravity(Gravity.CENTER);
RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
dalsi_akce.setLayoutParams(p);
setContentView(dalsi_akce);
dalsi_akce.setText("test");
出现按钮但完全匹配父级。我在整个显示屏上都有这个按钮。如何设置按钮的宽度和高度?
答案 0 :(得分:2)
您正在将活动的内容设置为按钮。这就是为什么它跨越整个活动而完全是错误的。
而是创建活动的布局(xml文件)并使用setContentView
进行设置。然后,您可以以编程方式向内容添加按钮。
示例:
您的活动:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ViewGroup viewGroup = (ViewGroup) findViewById(R.id.myLayout);
Button dalsi_akce = new Button(this);
dalsi_akce.setGravity(Gravity.CENTER);
RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
dalsi_akce.setLayoutParams(p);
dalsi_akce.setText("test");
viewGroup.addView(dalsi_akce);
}
<强> main.xml中:强>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:id="@+id/myLayout"
tools:context=".MyActivity">
</RelativeLayout>
答案 1 :(得分:0)
首先,您应该将内容视图定义为RelativeLayout或LinearLayout,然后将按钮添加到此布局。您还可以使用RelativeLayout.LayoutParams类的另一个构造函数:
RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(200, 70);
实际上你使用这个构造函数:
public LayoutParams(int w, int h) {
super(w, h);
}
答案 2 :(得分:0)
如果您只是在layout.xml中创建了布局,然后在代码中根据需要自定义按钮,那将会更容易。例如,您可以执行以下操作:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id"@+id/left_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:text="Left"/>
</RelativeLayout>
这会给你一个按钮,它只与右上角的内容一样大。