ScrollView в диалоге привязывает к неправильному месту - PullRequest
0 голосов
/ 20 июня 2019

У меня есть alerttdialog с пользовательским макетом, включая просмотр прокрутки.Когда появляется диалоговое окно, представление прокрутки «обрезается» и кажется привязанным к верхней части экрана, а не к верхней части диалогового окна

Я искал в SE похожие проблемы и не могу их найти.Использование всплывающего окна имеет точно такую ​​же проблему.Вот мой XML:

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scroller"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/rock">

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center"
    android:orientation="vertical"
    android:padding="10dp">

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:background="@drawable/scrollbutton"
        android:padding="12dp"
        android:text="Room Number"
        android:textColor="@android:color/black"
        android:textSize="22sp" />

    <TextView
        android:id="@+id/contents"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@drawable/scrollbutton"
        android:gravity="center"
        android:padding="12dp"
        android:text="Here be Monsters" />

</LinearLayout>
</ScrollView>

А вот код диалога:

    LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View layout = inflater.inflate(R.layout.contents, null);
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
    alertDialog.setView(layout);
    AlertDialog alert = alertDialog.create();
    alert.requestWindowFeature(Window.FEATURE_NO_TITLE);
    alert.show();
    Window window = alert.getWindow();
    window.setLayout((int)(screenWidth*.8), (int)(screenHeight*.8));

ScrollView, as High as it will go

Я попытался добавитьScrollView в качестве root_view в инфляторе, а также добавление LinearLayout вокруг ScrollView и установка его в качестве root_view, но это не меняет результаты

1 Ответ

0 голосов
/ 20 июня 2019

Вы не устанавливаете родителя для разметки.Пусть диалог управляет расположением представления DialogFragment

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...