Tôi đã nói RelativeLayout
như vậy:
<RelativeLayout>
<TextView1/>
<TextView2/> // <-- View.VISIBLE OR View.GONE
<TextView3/>
<TextView4/>
</RelativeLayout>
Mỗi cái TextView
được neo bên dưới cái trước TextView
với android:layout_below
.
Vấn đề là TextView2 có thể có hoặc không ở đó (hoặc View.VISIBLE
hoặc View.GONE
); nếu đúng View.VISIBLE
, thì tất cả đều ổn, nhưng nếu đúng View.GONE
, thì TextView3 cuối cùng sẽ được hiển thị trên đầu TextView1.
Tôi đã thử nhiều cách khác nhau để khắc phục điều này, nhưng mỗi lần bị phát hiện bởi RelativeLayout
's', bạn không thể tham chiếu quy tắc id trước khi nó được xác định.
Tôi hy vọng rằng tôi đang thiếu một cái gì đó rõ ràng ở đây.
RelativeLayout
có cơ chế nhúng để tìm chế độ xem neo không phải GONE gần nhất. Tôi đã kiểm tra xuống Gingerbread và nó hiện diện ngay cả ở đó: github.com/aosp-mirror/platform_frameworks_base/blob/...