如何对每个 API 级别的视图进行数据绑定?
How to data-bind views per API level?
要求 不 显示< API 级别 26 的生物识别登录按钮,因为它不受支持,因此可以肯定地隐藏。方法 .setVisibility(View.GONE)
不是一个选项,因为数据绑定应该自行配置视图。
必须导入 android.os.Build.VERSION
和 android.view.View
,以便在生成的数据绑定中使用常量 VERSION.SDK_INT
和 class View
classes:
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<import type="android.os.Build.VERSION"/>
<import type="android.view.View"/>
</data>
<!-- only visible on API >= 26 -->
<androidx.appcompat.widget.AppCompatImageView
android:visibility="@{VERSION.SDK_INT >= 26 ? View.VISIBLE : View.GONE}"
android:id="@+id/button_biometric_authentication"
android:src="@drawable/ic_fingerprint_white_36dp"
android:layout_gravity="center_vertical|end"
android:layout_height="match_parent"
android:layout_width="wrap_content"/>
</layout>
要求 不 显示< API 级别 26 的生物识别登录按钮,因为它不受支持,因此可以肯定地隐藏。方法 .setVisibility(View.GONE)
不是一个选项,因为数据绑定应该自行配置视图。
必须导入 android.os.Build.VERSION
和 android.view.View
,以便在生成的数据绑定中使用常量 VERSION.SDK_INT
和 class View
classes:
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<import type="android.os.Build.VERSION"/>
<import type="android.view.View"/>
</data>
<!-- only visible on API >= 26 -->
<androidx.appcompat.widget.AppCompatImageView
android:visibility="@{VERSION.SDK_INT >= 26 ? View.VISIBLE : View.GONE}"
android:id="@+id/button_biometric_authentication"
android:src="@drawable/ic_fingerprint_white_36dp"
android:layout_gravity="center_vertical|end"
android:layout_height="match_parent"
android:layout_width="wrap_content"/>
</layout>