NestedScrollView doesn’t show up in AlertDialog Code Answer

Hello Developer, Hope you guys are doing great. Today at Tutorial Guruji Official website, we are sharing the answer of NestedScrollView doesn’t show up in AlertDialog without wasting too much if your time.

The question is published on by Tutorial Guruji team.

I have an AlertDialog that has a custom view and here is the view:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    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">

    <androidx.appcompat.widget.Toolbar
        android:background="@color/grey_1"
        android:id="@+id/edit_point_toolbar"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toTopOf="@id/edit_scrollView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <ImageView
                android:id="@+id/edit_point_close"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                android:src="@drawable/ic_close_red_32dp"
                android:layout_margin="4dp"
                android:clickable="true"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
            <TextView
                app:layout_constraintRight_toLeftOf="@id/edit_point_close"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                android:text="Edit point"
                android:textColor="@color/black"
                android:textSize="15dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.appcompat.widget.Toolbar>

    <androidx.core.widget.NestedScrollView
        android:id="@+id/edit_scrollView"
        app:layout_constraintTop_toBottomOf="@id/edit_point_toolbar"
        android:layout_width="match_parent"
        app:layout_constraintBottom_toBottomOf="parent"
        android:layout_height="0dp">
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="8dp">
            <EditText
                android:id="@+id/edit_point_name"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintBottom_toTopOf="@id/save_edit_point"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:minLines="3"
                android:textDirection="rtl"
                android:background="@drawable/new_book_text_box"
                android:gravity="right|top"
                android:textAlignment="gravity"
                android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
            <Button
                app:layout_constraintTop_toBottomOf="@id/edit_point_name"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintLeft_toLeftOf="parent"
                android:id="@+id/save_edit_point"
                android:layout_width="0dp"
                app:layout_constraintWidth_percent="0.7"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginTop="16dp"
                android:layout_marginBottom="8dp"
                android:backgroundTint="@color/green_500"
                android:text="Confirm"
                android:textColor="#FFF" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.core.widget.NestedScrollView>

</androidx.constraintlayout.widget.ConstraintLayout>

In the xml design screen I can see the Toolbar and the NestedScrollView content normally but in my app the NestedScrollView isn’t showing and I can just see the toolbar.

Here is the AlertDialog code:

 AlertDialog.Builder builder = new AlertDialog.Builder(context , R.style.Theme_Dialog);
                ViewGroup viewGroup = view.findViewById(android.R.id.content);
                View dialogView = LayoutInflater.from(view.getContext()).inflate(R.layout.edit_point_dialog , viewGroup, false);
                builder.setView(dialogView);
                AlertDialog alertDialog = builder.create();
                alertDialog.show();
                Window window = alertDialog.getWindow();
                window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

I’m confused why the NestedScrollView content is not showing. In fact when I set height wrap_content instead of 0dp it shows but doesn’t scroll good and has overlap with the toolbar. Can anyone figure out where am I wrong?

Answer

I tried out several things and

<androidx.core.widget.NestedScrollView
    android:id="@+id/edit_scrollView"
    app:layout_constraintTop_toBottomOf="@id/edit_point_toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_constrainedHeight="true"
    app:layout_constraintBottom_toBottomOf="parent">

I think this will give you desired design but honestly I dont quite understand why it works and 0dp doesnt. weirdest thing for me is that 0dp works when the view is inflated in normal layout but it doesnt when its being inflating in AlertDialog.

We are here to answer your question about NestedScrollView doesn’t show up in AlertDialog - If you find the proper solution, please don't forgot to share this with your team members.

Related Posts

Tutorial Guruji