我用半透明背景的一層framelayout創建了一個疊加層。 但是,此疊加層不會阻止觸摸事件與其下面的視圖進行交互。 應該如何創建一個覆蓋所有觸摸事件的覆蓋?如何創建一個將觸摸事件阻擋到UI下面的UI?
5
A
回答
7
下面的代碼將增加對一切的頂部覆蓋層:
View v1 = new View(this);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
1000,
50,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
PixelFormat.OPAQUE);
params.gravity = Gravity.BOTTOM;
WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
wm.addView(v1, params);
阻止觸摸事件要麼就得換旗或下面的代碼將工作:
protected boolean onTouchEvent (MotionEvent me) {
return true;
}
對於V1,你會做一個導入:
import android.view.View.OnTouchListener;
然後設置onTouchListener:
v1.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
})
12
如果蓋還沒有得到觸摸事件,則事件傳遞到底層的視圖,因此阻止在它下面的意見觸摸事件,讓您的覆蓋可觸摸android:clickable="true"
+0
這是偉大的,對我的作品,謝謝 – li2
+0
好的技巧,爲我工作的感謝 –
1
穿上覆蓋layer.then設置按鈕該按鈕的android:背景=「@空」它擋住的視圖下方it..hope觸摸事件它解決您的問題
7
下面的代碼適用於我。我添加了android:clickable="true"
來將觸摸事件阻止到其下的其他視圖。
這是疊加層中的ProgressBar示例。如果你不想使用ProgressBar,你可以在沒有它的情況下使用FrameLayout。
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/progress_overlay"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.4"
android:animateLayoutChanges="true"
android:background="@android:color/black"
android:visibility="gone"
android:clickable="true">
<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true"/>
</FrameLayout>
相關問題
- 1. 如何在不阻擋UI的情況下創建UIView
- 2. Android - 無阻擋UI的addView
- 3. 通過不阻擋UIScrollView將UIScrollView的觸摸事件轉發到父視圖
- 4. 如何爲MKMapView創建觸摸事件?
- 5. 強制觸摸UITableViewCell裏面的UICollectionView
- 6. 觸摸事件蔓延到下一頁?
- 7. 如何在不阻擋UI的情況下在QGraphicsScene中移動1000個項目
- 8. 直到UI更新或觸摸事件纔開始動畫
- 9. 如何在DOM上觸發js創建的觸摸事件
- 10. iOS:如何在UI元素處理事件之前截獲觸摸事件
- 11. 如何僅將jQuery Mobile用於其觸摸事件支持(無UI增強)?
- 12. 如何將觸摸事件從UIView傳遞到它下面的UIView?
- 13. 處理觸摸事件到一個UITableCell
- 14. 如何在不阻擋UI的情況下向WPF程序添加延遲
- 15. 間接觸發UI的觸發事件
- 16. 工作在iPad/iPhone/iPod上的jQuery UI觸摸事件?
- 17. 爲appBar的iconElementLeft添加觸摸事件 - material-ui
- 18. 如何創建一個事件下載完成時觸發
- 19. 如何在另一個視圖後面接收觸摸事件?
- 20. 如何創建一個不處理觸摸事件的透明過濾器
- 21. 觸摸事件上下andengine
- 22. 如何創建Alloy UI下拉菜單
- 23. 讀取XML文件創建一個UI
- 24. 如何將觸摸事件從一個視圖傳遞到另一個視圖
- 25. 對話框創建後jQuery ui對話框觸發事件
- 26. jQuery UI手風琴創建事件沒有觸發
- 27. Jquery UI動態創建按鈕未觸發事件
- 28. 將Swing UI帶到下一個級別?
- 29. 如何將觸摸事件傳遞給tableview下的另一個視圖?
- 30. Draggable正在阻止觸摸事件
我怎麼會不記得觸摸監聽器? +1 – jvrodrigues