对话框中的 TextView 没有在顶部对齐?

TextView in dialog not getting aligned at top?

我有一个对话框,其中有一个 header - 文本视图。但问题是文本视图在布局底部对齐。 我希望它是 center_vertical.

知道如何解决这个问题吗?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:minWidth="400dp"
    android:orientation="vertical">
  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/relativeLayout"
    android:layout_gravity="top"
    android:orientation="vertical"
    android:gravity="top"
    android:textAlignment="viewStart">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tvHeader"
        android:text="Enter OTP"
        android:layout_gravity="center_horizontal|top"
        android:textStyle="bold"
        android:textSize="20sp"
        style="@style/AlertDialog.AppCompat"
        android:gravity="top" />
    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="@android:color/darker_gray"
        android:layout_gravity="top"
        android:layout_below="@+id/tvHeader"/>
  </LinearLayout>
</LinearLayout>

您需要删除嵌套的 LinearLayout 并正确格式化您的 xml 文件。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tvHeader"
        style="@style/AlertDialog.AppCompat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:text="Enter OTP"
        android:textSize="20sp"
        android:textStyle="bold" />

    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_gravity="top"
        android:background="@android:color/darker_gray" />

</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:minWidth="400dp"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tvHeader"
        style="@style/AlertDialog.AppCompat"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Enter OTP"
        android:textSize="20sp"
        android:textStyle="bold" />

    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_below="@+id/tvHeader"
        android:layout_gravity="top"
        android:background="@android:color/darker_gray" />
</LinearLayout>

请试试这个

问题是对话框的标题占用了 space。即使我没有为它设置任何文本。 我通过以下方式删除了标题: thisDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

在 setContentView 之前和额外的 space 被移除。