我想包括一个布局与数据绑定。
我想使用enum
将id从java传递到布局,但我似乎找不到正确的语法。
这是我的片段类,带有enum
和onCreateView()
:
private enum TYPE{
A(R.layout.fragment_item_A),
B(R.layout.fragment_item_B),
C(R.layout.fragment_item_C);
public final int id;
TYPE(int id) {
this.id = id;
}
private int getId(){
return id;
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//...
this.type = TYPE.A;
FragmentItemBinding binding = DataBindingUtil.inflate(inflater, R.layout.fragment_item, container, false);
tmpView = binding.getRoot();
binding.setType(type);
//...
return tmpView;
}
我想充气。分割项目,并使其包含R.layout。片段项目(或其他类型)。
这是我在R布局中失败的尝试。片段_项XML文件:
<data>
<variable name="type" type="com.dan.myapp.fragments.MyFragmentClass.TYPE"/>
...
</data>
<include layout="@{type.id}" <!-- layout="@layout/fragment_item_A"-->
android:id="@+id/included_item"/>
我应该如何在include中编写绑定?
PS:也许答案在这篇文章或这篇文章中,但我没有找到...
我很确定你不能那样做。数据绑定需要编译类型的布局,以便确定传递变量等的类型。
相反,我认为你可以这样做:
<FrameLayout ...>
<ViewStub android:layout="@layout/fragment_item_a"
android:visibility="@{type == Type.A ? View.VISIBLE : View.GONE}" .../>
<ViewStub android:layout="@layout/fragment_item_b"
android:visibility="@{type == Type.B ? View.VISIBLE : View.GONE}" .../>
<ViewStub android:layout="@layout/fragment_item_c"
android:visibility="@{type == Type.C ? View.VISIBLE : View.GONE}" .../>
</FrameLayout>
上面的示例工作正常,因为版本1.0-rc4修复了需要不必要变量的问题。 我完全按照它在留档中的描述,它不起作用: main.xml: buttons.xml: MyActivity.java: 如何获取按钮?
我正试图通过数据绑定来设置android中最小值为0、最大值为10的整数的限制。为此,我有一个可绑定的适配器,它通过两个侦听器设置一个整数的值,一个增加值,另一个减少值。最后,我想设置这个整数的极限,最小值为0,最大值为10。
在使用新的数据绑定api时,我发现无法绑定到“style”属性。编译器抱怨找不到样式。然而,如果我简单地将样式设置为原样,它会发现它很好。例如: 不工作: 作品: 错误: 错误:任务“:app:compiledBugJavaWithJavaC”的执行失败。 JAVAlang.RuntimeException:发现数据绑定错误。****/数据绑定错误****msg:标识符必须具有XML文件中的用户定
我想知道以下内容之间有什么区别: 与 有任何性能差异吗? 每个的首选用例是什么? 任何其他信息都将不胜感激! 谢谢!
if绑定 if绑定应用在页面元素中,并通过表达式判断是否为元素添加子元素的绑定。if绑定在功能上非常像visible绑定,但在实现上却有很大的不同。visible绑定是为元素添加css样式来控制元素是否显示,if绑定是控制元素的字元素,如果表达式为true,则为元素添加子元素,否则清空子元素。 示例代码: //.W片段 <label> <input type="checkbox" bind-c
attr绑定是用来为html元素绑定属性值的,这种绑定非常有用,例如我们需要想一个元素添加title属性,或者为img标签添加src属性。 示例代码: //.W片段 <a bind-attr="{ href: url, title: details }"> Report </a> //js片段 this.url=justep.Bind.observable("year-end.html"),