`MenuItem` / `ActionView` **只提供 `setOnMenuItemClickListener` (單擊)**,**無長按、觸摸、滑動事件回調**。`ActionBar` 內部實現不暴露 `OnTouchListener` 給開發者。
// menu.xml
<item android:id="@+id/action_custom"
android:actionLayout="@layout/custom_action_button"
app:showAsAction="always" />
<ImageButton xmlns:android="..."
android:id="@+id/btn_custom"
android:layout_width="?attr/actionButtonSize"
android:layout_height="?attr/actionButtonSize"
android:background="?attr/actionBarItemBackground"
android:src="@drawable/ic_icon" />
// Activity
View customView = findViewById(R.id.btn_custom);
customView.setOnLongClickListener(v -> { /* 長按邏輯 */ return true; });
customView.setOnTouchListener((v, event) -> { /* 滑動/手勢 */ return false; });
**優點**:完全掌控觸摸事件、長按、手勢。
**缺點**:需自行適配 ActionBar 高度、邊距、Ripple 效果、主題色。
同原理,`Toolbar` 取代 `ActionBar`,`menu.xml` 用 `actionLayout` 指向自訂 `View`,同樣可掛 `OnLongClickListener`/`OnTouchListener`。
**原生 ActionBar/MenuItem 不支援長按/滑動監聽**。要實現,**必須用 `actionLayout` 自訂 View (ImageButton 等) 並掛原生觸摸監聽器**;或改用 Toolbar 同樣做法。若非核心需求,建議用子選單替代,避免自訂 View 適配成本。