我的 Activity 之一作为对话框的按钮没有出现
one of my Activity as dialog's buttons not appear
在创建 Activity 作为对话框时,我使用了带有 2 个 textView 和 2 个按钮的相对布局 .. textView 彼此在下方,两个按钮在 textViews 下彼此相邻
问题是,其中一个按钮没有出现在 运行 中,但它们都出现在预览中。有人可以纠正我吗?
XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
tools:context=".Pop">
<TextView
android:id="@+id/Title"
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="msg title"
android:textAlignment="gravity"
android:textColor="@color/red"
android:textSize="17dp"
android:textStyle="bold"></TextView>
<TextView
android:id="@+id/msg"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="msg"
android:textAlignment="gravity"
android:textColor="@color/red"
android:textSize="15dp"></TextView>
<Button
android:id="@+id/no"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="200dp"
android:layout_marginTop="121dp"
android:text="Not me"
android:textColor="@color/red"></Button>
<Button
android:id="@+id/yes"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="121dp"
android:layout_marginRight="200dp"
android:text="Yes, I'm"
android:textColor="#4CAF50">
</Button>
</RelativeLayout>
预览:
运行:
您的按钮宽度设置为 match_parent,替换为 wrap_content,并将第二个按钮 'relative' 与第一个 android:layout_toEndOf
对齐
*android:layout_width="match_parent"*
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="121dp"
android:layout_marginRight="200dp"
或使用加权线性布局
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="4"
android:orientation="horizontal"
gravity="end">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:layout_weight="1"/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:layout_weight="1"/>
但是由于性能问题,嵌套布局再次被劝阻。因此,研究约束布局可为您提供所有布局所需的灵活性。
但是如果您尝试显示一个对话框,您可以只使用本机 AlertDialog,您可以在其中添加否定按钮和肯定按钮。
还可以使用 start 而不是 right,例如 lollipop(API 级别 21)及更高版本的 alignParentStart。还要注意对话框中的硬编码边距。
编辑
如果你想让按钮每个占据一半的宽度。然后将它们的 layout_weight 设置为 0.25 或者只是线性布局 weightSum 的四分之一,然后将 gravity 设置为 end
这是解决方案:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
tools:context=".PopUp"
android:orientation="vertical">
<TextView
android:id="@+id/Title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="msg title"
android:textAlignment="gravity"
android:textColor="@color/red"
android:textSize="17dp"
android:textStyle="bold"></TextView>
<TextView
android:id="@+id/msg"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="msg"
android:textAlignment="gravity"
android:textColor="@color/red"
android:textSize="15dp"></TextView>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal"
android:layout_width="match_parent">
<Button
android:id="@+id/no"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="Not me"
android:textColor="@color/red"></Button>
<Button
android:id="@+id/yes"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="Yes, I'm"
android:textColor="#4CAF50"></Button>
</LinearLayout>
</LinearLayout>
在创建 Activity 作为对话框时,我使用了带有 2 个 textView 和 2 个按钮的相对布局 .. textView 彼此在下方,两个按钮在 textViews 下彼此相邻 问题是,其中一个按钮没有出现在 运行 中,但它们都出现在预览中。有人可以纠正我吗?
XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
tools:context=".Pop">
<TextView
android:id="@+id/Title"
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="msg title"
android:textAlignment="gravity"
android:textColor="@color/red"
android:textSize="17dp"
android:textStyle="bold"></TextView>
<TextView
android:id="@+id/msg"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="msg"
android:textAlignment="gravity"
android:textColor="@color/red"
android:textSize="15dp"></TextView>
<Button
android:id="@+id/no"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="200dp"
android:layout_marginTop="121dp"
android:text="Not me"
android:textColor="@color/red"></Button>
<Button
android:id="@+id/yes"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="121dp"
android:layout_marginRight="200dp"
android:text="Yes, I'm"
android:textColor="#4CAF50">
</Button>
</RelativeLayout>
预览:
运行:
您的按钮宽度设置为 match_parent,替换为 wrap_content,并将第二个按钮 'relative' 与第一个 android:layout_toEndOf
对齐 *android:layout_width="match_parent"*
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="121dp"
android:layout_marginRight="200dp"
或使用加权线性布局
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="4"
android:orientation="horizontal"
gravity="end">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:layout_weight="1"/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:layout_weight="1"/>
但是由于性能问题,嵌套布局再次被劝阻。因此,研究约束布局可为您提供所有布局所需的灵活性。
但是如果您尝试显示一个对话框,您可以只使用本机 AlertDialog,您可以在其中添加否定按钮和肯定按钮。 还可以使用 start 而不是 right,例如 lollipop(API 级别 21)及更高版本的 alignParentStart。还要注意对话框中的硬编码边距。
编辑 如果你想让按钮每个占据一半的宽度。然后将它们的 layout_weight 设置为 0.25 或者只是线性布局 weightSum 的四分之一,然后将 gravity 设置为 end
这是解决方案:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
tools:context=".PopUp"
android:orientation="vertical">
<TextView
android:id="@+id/Title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="msg title"
android:textAlignment="gravity"
android:textColor="@color/red"
android:textSize="17dp"
android:textStyle="bold"></TextView>
<TextView
android:id="@+id/msg"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="msg"
android:textAlignment="gravity"
android:textColor="@color/red"
android:textSize="15dp"></TextView>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal"
android:layout_width="match_parent">
<Button
android:id="@+id/no"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="Not me"
android:textColor="@color/red"></Button>
<Button
android:id="@+id/yes"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="Yes, I'm"
android:textColor="#4CAF50"></Button>
</LinearLayout>
</LinearLayout>