【问题标题】:Android activity as Dialog: Doesn't display layout content properly作为对话框的 Android 活动:无法正确显示布局内容
【发布时间】:2017-09-13 19:10:59
【问题描述】:

我有一个DialogActivity,一个EditText 和一个Button。这是布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:background="@color/colorPrimaryLight2">

    <EditText
        android:id="@+id/input_username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:inputType="textEmailAddress"
        android:textColor="@color/colorPrimary"
        android:textColorHint = "@android:color/secondary_text_light_nodisable"
        android:hint="Contact ID"
        android:padding="15dp"/>

    <Button
        android:id="@+id/btn_login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/input_username"
        android:layout_centerHorizontal="true"
        android:padding="12dp"
        android:background="@drawable/elevation"
        android:textColor="@color/colorPrimary"
        android:text="Add Contact"/>

</RelativeLayout>

清单中的活动:

<activity android:name=".AddContactActivity"
    android:screenOrientation="portrait"
    android:label="Add Contact"
    android:theme="@style/Theme.AppCompat.Light.Dialog">
</activity>

我的活动是什么样子的:

问题是布局的活动内容重叠。我需要的是对话框的高度应该包含Activity的内容。

任何帮助都会很棒!谢谢。

【问题讨论】:

    标签: android android-activity dialog


    【解决方案1】:

    EditText 中删除android:layout_centerVertical="true"。最终布局应如下所示。

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    
        <EditText
            android:id="@+id/input_username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:hint="Contact ID"
            android:inputType="textEmailAddress"
            android:padding="15dp"
            android:textColor="@color/colorPrimary"
            android:textColorHint="@android:color/secondary_text_light_nodisable" />
    
        <Button
            android:id="@+id/btn_login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:layout_below="@+id/input_username"
            android:layout_centerHorizontal="true"
            android:padding="12dp"
            android:text="Add Contact"
            android:textColor="@color/colorPrimary" />
    
    </RelativeLayout>
    

    【讨论】:

    • 并在RelativeLayout中添加android:padding="30dp",解决了我的问题。接受这个作为答案。谢谢。
    • 很高兴知道这有帮助!
    【解决方案2】:

    只需从您的EditText 中删除属性android:layout_centerHorizontal="true"android:layout_centerVertical="true"

    如下更新您的对话框布局:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="@color/colorPrimaryLight2">
    
        <EditText
            android:id="@+id/input_username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textEmailAddress"
            android:textColor="@color/colorPrimary"
            android:textColorHint = "@android:color/secondary_text_light_nodisable"
            android:hint="Contact ID"
            android:padding="15dp"/>
    
        <Button
            android:id="@+id/btn_login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/input_username"
            android:layout_centerHorizontal="true"
            android:padding="12dp"
            android:background="@drawable/elevation"
            android:textColor="@color/colorPrimary"
            android:text="Add Contact"/>
    
    </RelativeLayout>
    

    输出:

    希望对你有帮助~

    【讨论】:

    • 是的!正是..!
    • 如果我的回答有帮助,请将其标记为已接受的答案并给予支持。 stackoverflow.com/help/someone-answers
    • 当然!我投了赞成票,但我的声誉很低。投票我的问题可能会有所帮助。
    猜你喜欢
    • 2011-05-28
    • 2013-04-01
    • 2021-10-24
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多