对话框中的ScrollView锚定到错误的位置

时间:2019-06-19 21:29:51

标签: android dialog scrollview

我有一个带有自定义布局(包括滚动视图)的Alertdialog。 当对话框出现时,滚动视图被“裁剪”,并且似乎锚定在屏幕的顶部,而不是对话框的顶部

我在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添加,还围绕ScrollView添加LinearLayout并将其设置为root_view,但这不会改变结果

1 个答案:

答案 0 :(得分:0)

您没有将父级设置为布局充气器。让对话框管理视图DialogFragment