Пользовательский диалог заполняет весь экран белым фоном - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь создать собственный диалог, но каждый раз, когда я запускаю приложение, оно заполняет экран белым фоном, например: image

См. Мой XML код (я уже пробовал без этого LinearLayout, только с ConstraintLayout, изменяя цвет фона, но ничего не работает.):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:gravity="center"
android:padding="20dp">

    <androidx.constraintlayout.widget.ConstraintLayout 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="wrap_content"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/shadow"
        android:layout_width="wrap_content"
        android:layout_height="223dp"
        android:layout_marginTop="89pt"
        android:src="@drawable/action_box_shadow_box"
        app:layout_constraintBottom_toTopOf="@+id/box"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0" />

    <ImageView
        android:id="@+id/triangle"
        android:layout_width="176dp"
        android:layout_height="236dp"
        android:gravity="center"
        android:src="@drawable/action_box_triangle"
        app:layout_constraintBottom_toBottomOf="@+id/box"
        app:layout_constraintEnd_toEndOf="@+id/box"
        app:layout_constraintHorizontal_bias="0.33"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.344" />

    <ImageView
        android:id="@+id/box"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/action_box_box"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <ImageView
        android:id="@+id/action_bar"
        android:layout_width="260dp"
        android:layout_height="55dp"
        android:src="@drawable/action_box_bar"
        app:layout_constraintBottom_toBottomOf="@+id/box"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.496"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/box"
        app:layout_constraintVertical_bias="0.811" />

    <TextView
        android:id="@+id/action_text"
        android:layout_width="253dp"
        android:layout_height="102dp"
        app:layout_constraintBottom_toBottomOf="@+id/box"
        app:layout_constraintEnd_toEndOf="@+id/shadow"
        app:layout_constraintStart_toStartOf="@+id/shadow"
        app:layout_constraintTop_toTopOf="@+id/shadow"
        app:layout_constraintVertical_bias="0.286" />

</androidx.constraintlayout.widget.ConstraintLayout>

Я думаю, что это проблема с ограничениями, но я понятия не имею, как ее решить.

1 Ответ

0 голосов
/ 03 февраля 2020

Вы используете фиксированную высоту для своих просмотров. Фиксированные высоты также довольно велики. Ваша базовая root раскладка имеет wrap_content для высоты, поэтому общий размер раскладки или «Диалог» будет огромным. попробуйте использовать wrap_content для высоты ваших вложенных видов и посмотрите, как это выглядит.

Используя макет ограничения с верхним и нижним ограничением для вида, вы также можете использовать 0dp для высоты. Проверьте это и посмотрите, как это меняет внешний вид.

...