2011-11-15 20 views
17

Có một số LinearLayout với nhiều phần tử con. Khi người dùng chạm vào bất kỳ phần tử con nào, cùng một phương thức sẽ được gọi. Để không triển khai cùng một onClickListener cho từng phần tử, tôi đã triển khai onClickListener cho parentLayout mẹ CHỈ.Làm cho cha mẹ có thể nhấp chuột cũng làm cho tất cả phần tử con cũng có thể nhấp không?

Bây giờ, khi tôi nhấp vào bất kỳ vị trí nào trong đường viền của bố cục mẹ, phương thức mong muốn sẽ được gọi ngay khi tôi đã triển khai trình lắng nghe cho tất cả các phần tử con.

Hỏi: Tôi có thể dựa vào bất cứ lúc nào tôi triển khai onClickListener cho phụ huynh, tất cả các phần tử con của nó sẽ phản ứng với sự kiện nhấp chuột không?

Q: Điều gì sẽ xảy ra nếu bất kỳ phần tử con nào có riêng onClickListener? Sẽ có một vụ va chạm hoặc nhấp vào yếu tố đó sẽ chỉ kích hoạt sự kiện nhấp chuột của riêng mình?

+1

bố cục được nhấn có nghĩa vụ truyền bá cho tất cả trẻ em –

Trả lời

28

Bạn đã trả lời câu hỏi đầu tiên của mình với câu hỏi thứ hai. ClickEvent sẽ được gửi đến phần tử con thấp nhất trong phân cấp bố cục. Nếu phần tử này không có hành vi onClick, nó sẽ chuyển sự kiện đến cha mẹ của nó cho đến khi sự kiện được xử lý.

Vì vậy, bạn có thể coi LinearLayout là một khối duy nhất cho hành vi onClick của mình. Nếu bạn tạo một phần tử có thể nhấp khác bên trong bố cục, hãy đảm bảo rằng nó đủ lớn để giảm cơ hội người dùng thiếu mục chính xác.

Các vấn đề liên quan