Существует макет диалога со значениями ширины и высоты, равными 500 dp.
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<!--Some variable-->
</data>
<androidx.cardview.widget.CardView
android:layout_width="500dp"
android:layout_height="500dp"
android:background="#00000000"
app:cardBackgroundColor="#fff"
app:cardCornerRadius="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp">
</LinearLayout>
</androidx.cardview.widget.CardView>
</layout>
Когда я реализую этот макет как setContentView в диалоге, он выглядит как на снимке экрана ниже.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.popup_permission)
}
Когда я реализую это как DataBindingUtil.inflate, я получу следующий результат.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val bind = DataBindingUtil.inflate<PopupPermissionBinding>(
layoutInflater,
R.layout.popup_permission,
null,
false
)
setContentView(bind.root)
}
Я поместил ненулевую ViewGroup в параметр inflate, но это то же самое.
Нельзя применить результат setContentView (DataBinding.inflate.root) как setContentView (layoutId)