Tôi muốn vô hiệu hóa tất cả các tương tác trên màn hình cảm ứng trong khi hoạt ảnh đang được hiển thị. Tôi không muốn sử dụng phương pháp setClickable()
trên các nút ở đầu hoặc cuối của hoạt ảnh vì có một số lượng lớn các nút. Bất kỳ đề xuất?Vô hiệu hóa tất cả các tương tác trên màn hình cảm ứng Khi hoạt ảnh
Trả lời
Trong Hoạt động của bạn, bạn có thể ghi đè onTouchEvent
và luôn luôn return true;
để cho biết bạn đang xử lý các sự kiện chạm.
Bạn có thể tìm tài liệu cho hàm đó there.
Sửa Dưới đây là một cách để bạn có thể vô hiệu hóa cảm ứng trên toàn bộ màn hình thay vì xử lý tất cả các quan điểm từng người một ... Đầu tiên thay đổi cách bố trí hiện tại của bạn như thế này:
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
< .... put your current layout here ... />
<TouchBlackHoleView
android:id="@+id/black_hole"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</FrameLayout>
Và sau đó xác định tùy chỉnh của bạn xem với một cái gì đó như thế này:
public class TouchBlackHoleView extends View {
private boolean touch_disabled=true;
@Override
public boolean onTouchEvent(MotionEvent e) {
return touch_disabled;
}
public disable_touch(boolean b) {
touch_disabled=b;
}
}
Sau đó, trong hoạt động, bạn có thể vô hiệu hóa các liên lạc với
(TouchBlackHoleView) black_hole = findViewById(R.id.black_hole);
black_hole.disable_touch(true);
Và kích hoạt nó trở lại với
black_hole.disable_touch(false);
câu trả lời cho vấn đề này
for (int i = 1; i < layout.getChildCount(); i++) { TableRow row = (TableRow) layout.getChildAt(i); row.setClickable(false);
chọn tất cả các hàng của cách bố trí bảng trong đó có tất cả các quan điểm và vô hiệu hóa chúng
Cách dễ dàng để thực hiện đó là thêm bố cục transaperent trên nó (thêm nó trong chiều cao và chiều rộng phụ huynh điền xml của bạn).
Trong khi bắt đầu hoạt hình: transaparentlayout.setClickable(true);
Trong khi kết thúc hoạt hình: transaparentlayout.setClickable(false);
Cuối cùng tôi đã là một câu trả lời cơ bản của @Matthieu và làm cho nó làm việc theo cách như vậy. Tôi quyết định xuất bản câu trả lời của mình vì tôi mất 30 phút để hiểu tại sao tôi gặp lỗi.
XML
<...your path to this view and in the end --> .TouchBlackHoleView
android:id="@+id/blackHole"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Lớp
public class TouchBlackHoleView kéo dài Xem { tin boolean touchDisable = false;
public TouchBlackHoleView(Context context) {
super(context);
}
public TouchBlackHoleView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public TouchBlackHoleView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return touchDisable;
}
public void disableTouch(boolean value){
touchDisable = value;
}
}
Sử dụng
blackHole = (TouchBlackHoleView) findViewById(R.id.blackHole);
blackHole.disableTouch(true);
Thưởng thức
- 1. Cocoa webView - Vô hiệu hóa tất cả tương tác
- 2. Vô hiệu hóa chạm nhưng không phải tất cả tương tác của người dùng trên UITextField
- 3. Vô hiệu hóa ảnh chụp màn hình trong android ics
- 4. MBProgressHUD vô hiệu hóa tương tác với UITableViewController
- 5. Vô hiệu hóa màn hình khóa
- 6. sử dụng màn hình cảm ứng khiến màn hình trở nên mờ trên màn hình cảm ứng
- 7. tắt tương tác cảm ứng trong UITableView
- 8. vô hiệu hóa tất cả các yếu tố trong html
- 9. Inline Ckeditor: Tất cả các nút bị vô hiệu hóa
- 10. WPF Scrollviewer trên máy tính bảng màn hình cảm ứng
- 11. Hình thức vô hiệu hóa Delphi khi đang tải
- 12. Vô hiệu hóa hoặc ngăn cảm ứng đa điểm trong Hoạt động
- 13. Kích hoạt lớp giả ": hoạt động" trên màn hình cảm ứng
- 14. Cách thay đổi hình ảnh và vô hiệu hóa UIBarButtonItem
- 15. Vô hiệu hóa tất cả lịch biểu trong Glassfish 3.1
- 16. vô hiệu hóa tất cả các sự kiện keyup/keydown/keypressed trên trang
- 17. Google Maps Vô hiệu hóa người dùng panning trên tất cả các sự kiện
- 18. Làm thế nào để vô hiệu hóa nảy trong ứng dụng iphone toàn màn hình html5?
- 19. Vô hiệu hóa tự động hoàn tất cho tất cả các đầu vào datepicker jquery
- 20. Vô hiệu hóa/thay đổi màn hình kích hoạt IntelliJ IDE
- 21. Làm thế nào để vô hiệu hóa tương tác người dùng trên MKMapView?
- 22. Trong Android, khi vuốt để thay đổi màn hình cách hiển thị hoạt ảnh với cả hai màn hình
- 23. Màn hình tải hoạt ảnh trên iPhone
- 24. Làm thế nào để vô hiệu hóa nút quay lại khi hộp cảnh báo trên màn hình
- 25. Sự cố trên Internet Explorer + Màn hình cảm ứng Windows8
- 26. Tạo hiệu ứng mờ trên nút bị vô hiệu hóa
- 27. Vô hiệu hóa tất cả cảnh báo trong khi ndk-build
- 28. HOWTO: NSWindow ở chế độ toàn màn hình (sư tử) và kích hoạt/vô hiệu hóa?
- 29. iOS - Hiệu ứng hoạt ảnh - Hình ảnh pop-in
- 30. Vô hiệu hóa tất cả đầu vào trong khi UIActivityIndicatorView quay
'Xem xem = findViewById (R.id.whole_view); \t chế độ xem.setOnTouchListener (new OnTouchListener() { công khai boolean onTouch (Xem v, sự kiện MotionEvent) { // TODO Phương pháp tạo tự động được tạo trả về true; } }); ' tôi đã viết điều này khi bắt đầu hoạt ảnh nhưng không hoạt động vui lòng cho tôi biết nơi nào sai –
đây là toàn bộ id của bố cục chính của tôi –
Loại xem là gì và bạn đang cố vô hiệu hóa điều gì? Nó là một nút? một ScrollView? ...? – Matthieu