DataBindingUtil finbinding(视图视图)vs getBinding(视图视图)



方法findBinding(View view)的预期目的是什么?

我一直在使用数据绑定库的测试版。
目前还没有针对单个类的官方参考文档,所以我一直在查看源代码,看看我们可以访问哪些方法。

DataBindingUtil类有两个方法,听起来它们做的事情类似:

  • public static <T extends ViewDataBinding> T findBinding(View view)
  • public static <T extends ViewDataBinding> T getBinding(View view)

第二个方法getBinding只是一个调用ViewDataBinding类的getBinding方法的实用程序方法。

第一个方法findBinding要遵循和确定其目的有点不清楚。什么好主意吗?

抱歉,文档从网页中丢失,但它们应该在sdk maven存储库中。

不同之处在于,find binding将遍历父视图,而getBinding将返回null,如果给定的视图不是绑定根。以下是文档:

/**
 * Retrieves the binding responsible for the given View. If <code>view</code> is not a
 * binding layout root, its parents will be searched for the binding. If there is no binding,
 * <code>null</code> will be returned.
 * <p>
 * This differs from {@link #getBinding(View)} in that findBinding takes any view in the
 * layout and searches for the binding associated with the root. <code>getBinding</code>
 * takes only the root view.
 *
 * @param view A <code>View</code> in the bound layout.
 * @return The ViewDataBinding associated with the given view or <code>null</code> if
 * view is not part of a bound layout.
 */
public static <T extends ViewDataBinding> T findBinding(View view) {
/**
 * Retrieves the binding responsible for the given View layout root. If there is no binding,
 * <code>null</code> will be returned. This uses the DataBindingComponent set in
 * {@link #setDefaultComponent(DataBindingComponent)}.
 *
 * @param view The root <code>View</code> in the layout with binding.
 * @return The ViewDataBinding associated with the given view or <code>null</code> if
 * either the view is not a root View for a layout or view hasn't been bound.
 */
public static <T extends ViewDataBinding> T getBinding(View view) {

最新更新