Vâng, sau một chút tìm kiếm trên SO Tôi tìm thấy câu trả lời này để nghe di chuyển các sự kiện. Implement Scroll Event Listener in Android. Ý tưởng là ghi đè onScrollChanged
trong số ScrollView
của bạn và theo dõi phần hiển thị của chế độ xem cuộn trong hoạt động của bạn.
Làm mà bạn có thể dễ dàng nhận được các quan điểm có thể nhìn thấy bằng một mã mà trông như thế này:
int currentPosition = lastXPosition; // lastXPosition gets updated from scroll event
int layoutWidth = linearLayout.getWidth();
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int childWidth = layoutWidth/linearLayout.getChildCount();
int firstVisibleXPos = currentPosition - width/2; // currentPosition will be in the middle of the screen
int lastVisibleXPos = currentPosition + width/2;
int indexOfFirstVisible = firstVisibleXPos/childWidth;
int indexOfLastVisible = lastVisibleXPos/ childWidth;
Tất cả các mã trên giả định kích thước xem con cố định. nếu bạn đang sử dụng kích thước con biến, bạn sẽ cần phải có được chiều rộng của họ đầu tiên và theo dõi của nó sau đó tính toán visiblity dựa trên chỉ số và vị trí trong chế độ xem cha mẹ.
Nguồn
2013-03-27 09:48:04
bạn có nghĩa là 'con có thể nhìn thấy được thiết lậpVisibilty (View.VISIBLE) '? hoặc bạn có nghĩa là 'có thể nhìn thấy trong tầm nhìn'? –
Tôi có nghĩa là hiển thị là cảnh. – user2106897