Tôi hơi bị kẹt với cái này - đầu tiên và trước hết, liên kết sau hữu ích tuy nhiên tôi đã gặp phải một chút vấn đề với khả năng hiển thị:Xác định xem chế độ xem có trên màn hình hay không - Android
liên kết: Check view visibility
tôi có một cái nhìn cuộn (mẹ) và một số phụ views (LinearLayout
->TableLayout
) vv có một số hạng mục tôi thiết lập để View.GONE
trong XML (android:visibility="gone"
).
Tôi có một số mã đơn giản để xác định xem nó có hiển thị hay không bằng cách sử dụng getVisibility()
tuy nhiên khi tôi đặt mục thành View.VISIBLE
và thử ngay lập tức getDrawingRect()
Tôi nhận được Rect với số không trên bảng. Bất kỳ nhấp chuột nào khác đều nhận tọa độ chính xác.
Bây giờ điều này có thể là do chế độ xem chưa bao giờ được vẽ (như được định nghĩa trong XML) khiến nó không trả về tọa độ nào, tuy nhiên tôi đặt View.VISIBLE
trước khi cố gắng xác định khả năng hiển thị màn hình. Nó có thể được rằng tôi cần phải nhận được một số loại gọi lại từ nói onDraw()? hoặc có thể đặt chế độ hiển thị chế độ xem của các mục bị ẩn trong mã. Một chút khó chịu; (
Một số mã:
Rect scrollBounds = new Rect();
scroll.getHitRect(scrollBounds);
Rect viewBounds = new Rect();
if (view.getVisibility() == View.GONE) {
view.setVisibility(View.VISBLE)
viewBounds.getDrawingRect(viewBounds);
if (!Rect.intersects(scrollBounds, viewBounds) {
// do somthing
}
}
Layouts khu vực như sau:
ScrollView
LinearLayout
TableLayout
Button
HiddenView
Tất nhiên, nó rất có thể tôi sẽ về vấn đề này một cách sai lầm hoàn toàn - về cơ bản tôi chỉ muốn chắc chắn rằng các vị trí scrollview chính nó để xem đã trở thành có thể nhìn thấy có thể được nhìn thấy trong toàn bộ.
Nếu cần bất kỳ thông tin nào khác, hãy cho tôi biết!
Tuyệt. Vui lòng đánh dấu vào mũi tên/+1 nếu nó đã giúp. Chúc mừng. – OceanLife
Yeah đã cố gắng để làm điều đó nhưng điểm danh tiếng của tôi sẽ không cho phép tôi: ( –