2012-05-07 44 views
6

Câu hỏi của tôi rất đơn giản: Cách tắt mọi sự kiện trên Chế độ xem trong Android? (bao gồm loại bỏ khả năng tập trung của nó, như tôi chỉ muốn nó ở đó một cách trực quan nhưng không tồn tại trên mọi thứ khác) Và nó có hoạt động trên toàn bộ cây xem không? (như nếu tôi vô hiệu hóa các sự kiện trên thư mục gốc, tất cả các sự kiện sẽ bị vô hiệu hóa cho các con của nó?).Làm cách nào để tắt mọi sự kiện trên Chế độ xem trong Android?

Bây giờ, trước khi bạn nói bất cứ điều gì tôi đã thử tất cả những điều sau đây:

Và không có phương pháp nào trong số này xuất hiện để hoạt động, nghiêm túc.

Tôi đã thử chúng trực tiếp trên WebView, cũng như bố cục gốc trên mọi thứ nhưng tôi vẫn có thể tương tác với nó.

Bất kỳ ý tưởng nào?

Cảm ơn!

EDIT # 1

Các giải pháp mà bao gồm trong việc thêm một cái nhìn trên quan điểm cho rằng cần phải được vô hiệu hóa không hoạt động. Trên thực tế, bạn vẫn có thể nhấp vào chế độ xem bên trong, tôi đã thử với một ví dụ đơn giản:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:background="#ff0000"> 
     <Button 
      android:id="@+id/button" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:text="Click Me!" 
     /> 
    </LinearLayout> 

    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#00000000" 
    /> 
</FrameLayout> 

Tại đây, bạn vẫn có thể nhấp vào button.

EDIT # 2

Lý do tại sao tôi muốn làm điều này có liên quan đến following question mà tôi hỏi tuần trước.

Điều tôi có là ListView hoạt động như thanh điều hướng bên dưới View chứa nội dung ứng dụng của tôi. Vấn đề với việc thực hiện này là khi tôi cố gắng cuộn qua ListView khi có chế độ xem có thể lấy nét trong lớp ở trên cùng, thì ListView không cuộn và thay vào đó, chế độ xem trên cùng sẽ lấy nét (Đó là trường hợp khi có một số: Webview hoặc EditText v.v.). Vì vậy, có như đã đề cập trong một trong những câu trả lời, tôi có thể vô hiệu hóa bất kỳ sự kiện nhấp chuột nào trên WebView bằng cách ghi đè setOnTouchListener nhưng chế độ xem vẫn tập trung và tôi nghĩ đây là lý do tôi vẫn gặp vấn đề tương tự với thanh điều hướng của mình .

Trả lời

5

Chỉ cần đặt chế độ xem ở đầu chế độ xem của bạn. Bạn có thể bật tắt bằng cách đặt chế độ xem.visibility = gone/visible.

<FrameLayout> 
<WebView/> 
<FrameLayout This view will be on top/> 
</FrameLayout> 

Chỉnh sửa: Chỉ stumpled khi liên kết này: https://stackoverflow.com/a/3856199/969325 Về cơ bản vô hiệu hóa tất cả các sự kiện liên lạc cho webview. Thử điều đó?

Chỉnh sửa 2 chỉnh sửa lại: Cố gắng đặt chế độ hiển thị đi cho chế độ xem trên cùng bên dưới chế độ xem danh sách của bạn.

+0

Tôi không muốn nó biến mất! Tôi chỉ muốn vô hiệu hóa bất kỳ sự kiện nào (chẳng hạn như nhấp chuột) trên đó ... –

+0

@AmokraneChentir chỉ làm cho nó trong suốt ... android: background = "android: color/transparent" <- nếu nó tồn tại, hãy tạo cho bạn màu trong suốt – Warpzit

+0

Ồ, tôi không đọc câu trả lời của bạn đúng cách. Thực ra ngay cả với một chế độ xem khác trên đầu trang của nó, tôi vẫn có thể nhấp qua nó ở chế độ xem bên trong. –

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