![](/img/trans.png)
[英]How to add menuItem with actionLayout programmatically in Android?
[英][Android][MenuItem]How to display title text when long press actionLayout?
我在我的工具欄中使用MenuItem
,一些項目需要自定義布局,所以我為它們創建了 actionLayout。
UI 看起來不錯,但是當我長按只有icon
但沒有actionLayout
的項目時,它們會在圖標下方顯示title
作為吐司,而那些有actionLayout
的項目不會顯示任何內容。
我希望所有項目都具有相同的行為,在長按期間會在同一位置(圖標下方)顯示其標題。
<item
android:id="@+id/normal_item"
android:title="@string/title"
android:icon="@drawable/icon"
app:showAsAction="ifRoom"
/>
<item
android:id="@+id/custom_item"
android:title="@string/title"
android:icon="@drawable/icon"
app:actionLayout="@layout/layout"
app:showAsAction="ifRoom"
/>
順便說一句,帶有 actionLayout 的項目是不可點擊的,所以我在onCreateOptionsMenu
中設置了一個 onClickListener 並且它起作用了:
@CallSuper
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.myMenu, menu)
menu.findItem(R.id.custom_item).actionView?.setOnClickListener {
// do something
}
}
給 actionView 設置一個LongClickListener
也很容易,但是如何讓它像這樣顯示標題文本呢? (圖片來源: http://www.devexchanges.info/2017/01/android-tip-detecting-long-click-at.html ):
通過簡單地使用解決了這個問題:
TooltipCompat.setTooltipText(myActionView, titleString).
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.