我有一个实例,我曾经将我的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).