java - Android 以编程方式添加的按钮具有匹配父级宽度和高度

标签 java android

我正在尝试添加此按钮

        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");

按钮出现,但完全匹配父级。我在整个显示屏上都有这个按钮。如何设置按钮的宽度和高度?

最佳答案

您正在将 Activity 的内容设置为按钮。这就是为什么它涵盖了整个 Activity 并且是完全错误的。

而是创建 Activity 的布局(一个 xml 文件)并使用 setContentView 设置它。然后您可以以编程方式向内容添加按钮。

示例:

您的 Activity :

@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);
}

ma​​in.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>

关于java - Android 以编程方式添加的按钮具有匹配父级宽度和高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25773815/

相关文章:

android - Path-App 类似 Android 中的圆形菜单

java - 使用数组查找或 if else if 语句哪个更好?

android - PageTransformer 转换中的 ViewPager 边距

启动 Activity 的 Android 简单小部件

java - 对象列表作为 Spring MVC 中的 RequestParam

android - TextView 未在 1 行中显示全文 - Android

android - doInBackground() 错误

java - UTF-8 |表单提交中的特殊字符问题 | java.io.CharConversionException异常

java - 仅使用 Java 从 apk 中提取 AndroidManifest.xml 文件

java - 无法使用 JavaMail 删除邮件