свойство layout не сохраняется при использовании DatabindingUtil.inflate в диалоге - PullRequest
0 голосов
/ 03 марта 2019

Существует макет диалога со значениями ширины и высоты, равными 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)

}

enter image description here

Когда я реализую это как 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)

}

enter image description here

Я поместил ненулевую ViewGroup в параметр inflate, но это то же самое.

Нельзя применить результат setContentView (DataBinding.inflate.root) как setContentView (layoutId)

...