如何使用 DataBindingUtil 在 Fragment 中绑定视图?

How to bind views in Fragment using DataBindingUtil?

在 activity 中可以绑定和访问 myView 这是布局中的子视图,如下所示:

@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);

   ActivityExampleBinding views = DataBindingUtil.setContentView(this, R.layout.activity_example);
   views.myView.doSomething();
}

如何在 Fragment 中执行此操作?我可以 return 像这样膨胀的根视图:

@Override
public @Nullable View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    ViewDataBinding views = DataBindingUtil.inflate(inflater, R.layout.fragment_example, container,false);
    return views.getRoot();
}

但是如何访问布局中的子视图?

您当前的代码很好,如果您想坚持使用它 — 只需将 view 变量更改为 FragmentExampleBinding(匹配您的 fragment_example 布局资源名称)。

或者,使用 FragmentExampleBinding.inflate(),因为您不需要传入布局资源 ID。