数据绑定设置的数据不显示在视图中

Data set by data binding is not displayed in the view

我是 databinding 的新手。

我使用示例代码慢慢跟着,但是视图没有显示任何数据。

没有错误。

我还通过调试确认数据已正确包含。

但是xml中没有设置数据。

Fragment.kt

class WritingRoutineFragment : Fragment() {
    var titleData: ArrayList<String>? = null
    var title: String? = null
    private lateinit var binding: FragmentWritingRoutineBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        arguments?.apply {
            titleData = getStringArrayList("title")
            title = titleData?.joinToString(" / ")
        }
    }

    override fun onCreateView(inflater: LayoutInflater,
                              container: ViewGroup?,
                              savedInstanceState: Bundle?): View? {
//        val view: View = inflater.inflate(R.layout.fragment_writing_routine, container, false)
        binding = DataBindingUtil.inflate(inflater, R.layout.fragment_writing_routine, container,false)
        val view = binding.root

        return view
    }
    companion object {
        @JvmStatic
        fun newInstance(data: ArrayList<String>) =
            WritingRoutineFragment().apply {
                arguments = Bundle().apply {
                    putStringArrayList("title", data)
                }
            }
    }
}

XML

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    <data>
        <variable
            name="data"
            type="com.example.writeweight.fragment.WritingRoutineFragment" />
    </data>
    <androidx.coordinatorlayout.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        tools:context=".fragment.WritingRoutineFragment">
        <com.google.android.material.appbar.AppBarLayout
            android:id="@+id/appbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/Theme.AppBarOverlay"
            app:elevation="0dp">
            <androidx.appcompat.widget.Toolbar
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                <TextView
                    android:id="@+id/body_part_detail_title"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:text="@{data.title}"
                    android:textColor="@color/white"
                    android:textAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
                    android:layout_centerHorizontal="true" />
            </androidx.appcompat.widget.Toolbar>
        </com.google.android.material.appbar.AppBarLayout>
    </androidx.coordinatorlayout.widget.CoordinatorLayout>
</layout>

binding 初始化之后,您需要 binding.data = this 某处。 (例如:在 onCreateView() 中)

thisWritingRoutineFragment