Theo http://developer.android.com/tools/data-binding/guide.html#imports, chúng ta có thể có biểu hiện đơn giản như vậy trong visibility:dữ liệu Android Binding: tầm nhìn trên bao gồm thẻ
<TextView
..
android:visibility="@{user.isAdult ? View.VISIBLE : View.GONE}"/>
Nhưng khi tôi cố gắng để làm như vậy trong một thẻ include
, như vậy:
<include
android:id="@+id/image_layout"
layout="@layout/image_layout"
android:visibility="@{notification.notifType == 0 ? View.VISIBLE : View.GONE}"/>
sau đó, Studio không chỉ cho thấy sự biểu hiện màu đỏ, nhưng khi xây dựng nó mang lại cho các lỗi sau trong lớp liên kết tự động tạo ra:
Error:(138, 29) error: cannot find symbol method setVisibility(int)
Đây là nơi các lỗi xảy ra trong lớp liên kết tự động tạo ra
// batch finished
if ((dirtyFlags & 0x3L) != 0) {
// api target 1
this.imageLayout.setVisibility(NotifTypeNotificatio1);
}
imageLayout.executePendingBindings();
Tôi nghi ngờ rằng bạn cần mà 'android: biểu visibility' để được vào xem gốc của' nguồn image_layout', đi qua 'notification' hoặc 'notification.notifType'. – CommonsWare
@CommonsWare Yep. Điều đó hiệu quả. Nhưng bố cục được bao gồm có thể sử dụng lại được, vì vậy tôi không muốn thiết lập chế độ hiển thị trong chế độ xem gốc của bố cục đó. Và nó không có nghi ngờ làm giảm khả năng đọc. Sẽ thực sự tốt đẹp để có được khả năng hiển thị làm việc trên thẻ bao gồm chính nó. –