我想知道以下内容之间有什么区别:
binding = DataBindingUtil.inflate(inflater, R.layout.drawer_item_primary, parent, false);
与
binding = DrawerItemPrimaryBinding.inflate(inflater, parent, false);
有任何性能差异吗?
每个的首选用例是什么?
任何其他信息都将不胜感激!
谢谢!
事实上,这两件事都是一样的,不会影响表演。只有一个小的区别,我注意到的是,如果你确定你想要膨胀的布局,那么你可以使用
< code > binding = draweritemprimarybinding . inflate(inflater,parent,false);
但是如果您想要动态绑定类,那么可以使用
int layoutId = R.layout.drawer_item_primary;
DataBindingUtil.inflate(inflater, layoutId, parent, false);
so < code > draweritemprimarybinding . inflate(inflater,parent,false);将始终返回我们的< code > DrawerItemPrimaryBinding 类。如果我们必须使用< code > databindingutil . inflate(inflater,layoutId,parent,false);然后我们可以根据需要进行造型。
谢谢你。
按照Android文档中的建议使用< code > Binding class ' s inflate 。
在DataBindingUtil类留档中可以看到。
T inflate (LayoutInflater inflater,
int layoutId,
ViewGroup parent,
boolean attachToParent)
仅当layoutId事先未知时才使用此版本。否则,请使用生成的绑定的充气方法以确保类型安全充气。
一种选择是通过< code>DataBindingUtil进行膨胀,但前提是您没有生成绑定类。
您已经生成了绑定类
,请使用该类而不是使用 DataBindingUtil
。
在Java中
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
HomeFragmentBinding binding = HomeFragmentBinding.inflate(inflater, container, false);
//set binding variables here
return binding.getRoot();
}
静态编程语言
lateinit var binding: HomeFragmentBinding
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
binding = HomeFragmentBinding.inflate(inflater, container, false)
return binding.root
}
如果未生成布局二进制类,@See此答案。
在使用新的数据绑定api时,我发现无法绑定到“style”属性。编译器抱怨找不到样式。然而,如果我简单地将样式设置为原样,它会发现它很好。例如: 不工作: 作品: 错误: 错误:任务“:app:compiledBugJavaWithJavaC”的执行失败。 JAVAlang.RuntimeException:发现数据绑定错误。****/数据绑定错误****msg:标识符必须具有XML文件中的用户定
数据绑定 JXML 中的动态数据来自于该 Page 的 data字段。 简单绑定 数据绑定使用 Mustache 语法(双大括号)将变量包起来,可以作用于以下: 页面内容 <view> hello {{ name }} </view> Page({ data: { name: 'cortana' } }) 组件属性(需要在双引号之内) <view id="{{id}}"> </
attr绑定是用来为html元素绑定属性值的,这种绑定非常有用,例如我们需要想一个元素添加title属性,或者为img标签添加src属性。 示例代码: //.W片段 <a bind-attr="{ href: url, title: details }"> Report </a> //js片段 this.url=justep.Bind.observable("year-end.html"),
submit绑定只能用在form元素中,当form提交的时候被触发,并且默认阻止form的提交。因此我们通常在submit的处理函数中以ajax的方式提交form表单。 示例代码: //.W片段 <form bind-submit="doSomething"> ... form contents go here ... <button type="submit">Submit</butt
with绑定用来创建一个绑定上下文,在子元素内的所有绑定都在这个上下文中进行。 示例代码: //.W片段 <h1 bind-text="city"> </h1> <p bind-with="coords"> Latitude: <span bind-text="latitude"> </span>, Longitude: <span bind-text="longitude"> </span
foreach绑定用来处理数组,通常用来将一个数组绑定到一个列表或者table中。在foreach绑定中,我们可以使用if、with等嵌套绑定。 示例代码: //.W片段 <table> <thead> <tr><th>First name</th><th>Last name</th></tr> </thead> <tbody bind-foreach="people"> <tr>