java – ViewBinding在膨胀后操纵视图

我有一个实例,我曾经将我的View传递给一个新的方法来操纵一些事情.在这里我将举一个例子.所以基本上我使用的是RecyclerView,当recylerview创建视图时,我正在给视图充气

所以现在我有了膨胀的View对象,现在我将它传递给我的方法来操纵它.

manipulateView(view)manipulateView设置视图子项的颜色和属性

曾经工作过的东西.但现在我转向ViewBinding

现在我有一个ViewStub,我需要在那里给我的customView充气

如下所示是代码

ViewDataBinding viewDataBinding = DataBindingUtil.inflate(layoutInflater, getLayoutResource(), viewGroup, false);
ViewStub viewStub = (ViewStub) viewDataBinding.getRoot().findViewById(R.id.stub);

然后我在这里设置viewStub的布局

viewStub.setLayoutResource(getLayoutResource());

现在setLayoutResource需要一个带有布局id的int值现在我的问题是如何在getLayoutResource()上调用manipulateView我应该只是传递viewStub然后调用viewStub.getRootView()并操纵该视图?

如果我能够自己操作ViewDataBinding对象,那将是最好的,我应该只是操纵ViewDataBinding :: getRoot吗?

最佳答案 通过调用layoutInflater.inflate(…)获得膨胀的视图与从viewDataBinding.getRoot()获得的视图相同.从文档,根
“returns the outermost view”.

所以,如果那是你想要操作的,我只需要调用manipulateView(viewDataBinding.root).

点赞