ViewBinding 在膨胀后操作视图

Sam*_*erz 5 java data-binding android

我有一个实例,我曾经将我View的方法传递给一个新方法来操作一些东西。在这里,我将提供一个示例。所以基本上我使用的是 aRecyclerView并且我是创建时inflating的视图recylerviewview

所以现在我有了膨胀的View对象,现在我只需将它传递给我的方法来操作它。

manipulateView(view) manipulateView 设置颜色和属性 view children

这曾经工作和一切。但现在我要开始了ViewBinding

现在我有一个ViewStub对我要在inflate我的customView

如下是代码

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

然后我在viewStub这里设置布局

viewStub.setLayoutResource(getLayoutResource());
Run Code Online (Sandbox Code Playgroud)

现在setLayoutResource期待一个int与价值id的的layout,现在我的问题是我怎么能叫manipulateViewgetLayoutResource()我应该只是经过viewStub,然后调用viewStub.getRootView()Manipulate看法?

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

Ada*_*331 3

通过调用而膨胀的视图layoutInflater.inflate(...)与您从 获得的视图相同viewDataBinding.getRoot()。从文档来看,root “返回最外面的视图”

所以,如果这就是你想要操纵的,我会打电话给manipulateView(viewDataBinding.root).