Solution 1: User relative layout
If you use LinearLayout for the DialogFragment layout, the dialog size will shrink to minimum.
The problem can be solved by using RelativeLayout, where dialog is shown with normal size.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="match_parent"
android:layout_height="match_parent"
android:padding="?dialogPreferredPadding"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello World" />
/>
</LinearLayout>
</RelativeLayout>NOTE: If LinearLayout.layout_height="wrap_content", the dialog will match content size. If LinearLayout.layout_height="match_parent", the dialog will go full/90% height.
class TestDialog : DialogFragment() { companion object { private const val FRAGMENT_TAG = "test_dialog" fun newInstance() = TestDialog() fun show(supportFragmentManager: FragmentManager): SyncSheetsDialog { val dialog = newInstance() dialog.show(supportFragmentManager, FRAGMENT_TAG) return dialog } } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { // return super.onCreateView(inflater, container, savedInstanceState) return activity!!.layoutInflater.inflate(R.layout.test, container) } override fun onStart() { super.onStart() }}Solution 2: dialog.window.setLayout
class TestDialog : DialogFragment() { override fun onStart() { super.onStart() dialog?.window?.setLayout(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT) }}References: