作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚开始弄乱 android 中的数据绑定(bind)。理想情况下,我希望有一个包含一些通用 xml 元素的根 xml 文件,然后它的内部内容可以是像这样的三个 xml 文件之一
<data>
<variable name="action" type="com.example.android.action"/>
</data>
<TextView>
<TextView>
<!--Only show one of these includes based on the binding data-->
<!-- if action.item -->
<include layout="item.xml"
bind:item="@{action.item}">
<!-- else if action.udpate -->
<include layout="update.xml"
bind:update="@{action.update}">
<!-- else if action.video -->
<include layout="video.xml"
bind:video="@{action.video}">
<TextView>
... etc
所以基本上基于操作(项目、更新或视频)中存在的子对象显示它的布局并绑定(bind) View 但不显示其他包含。我应该只使用 android 的 View:Visibility
还是有一些我忽略的内容?
最佳答案
Should I just use android's View:Visibility
是的,最好的方法是检查数据绑定(bind)布局中的 boolean
并相应地设置可见性,如下所示。
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
>
<data>
<import type="android.view.View"/>
<variable
name="action"
type="com.example.android.action"/>
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
layout="@layout/item"
android:visibility="@{action.item ? View.VISIBLE: View.GONE}"/>
<include
layout="@layout/update"
android:visibility="@{action.someOtherObject!=null ? View.VISIBLE: View.GONE}"/>
</LinearLayout>
</layout>
在这里你可以像上面一样检查NULL
或Boolean
。
关于安卓数据绑定(bind) : Is there a good way to show/hide an includes tag?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51251215/
我是一名优秀的程序员,十分优秀!