如何使用 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。
在 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。