代码之家  ›  专栏  ›  技术社区  ›  Manuel

如何使用DataBindingUtil绑定片段中的视图?

  •  1
  • Manuel  · 技术社区  · 5 年前

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

    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
    
       ActivityExampleBinding views = DataBindingUtil.setContentView(this, R.layout.activity_example);
       views.myView.doSomething();
    }
    

    我怎么能在一个片段中做到这一点?我可以这样返回膨胀的根视图:

    @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();
    }
    

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

    1 回复  |  直到 5 年前
        1
  •  1
  •   CommonsWare    5 年前

    你现在的代码很好,如果你想坚持的话-只要改变 view 变量为 FragmentExampleBinding (与您的 fragment_example 布局资源名称)。

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