在长按视图上显示可供性/悬停/工具提示

Posted

技术标签:

【中文标题】在长按视图上显示可供性/悬停/工具提示【英文标题】:Show affordance/hover/tooltip on a long-clicked View 【发布时间】:2011-06-30 04:40:00 【问题描述】:

我想显示一个工具提示,即当用户长按View 时,它会显示额外的非必要信息。

我眼前看到的两个选项是使用OnLongClickListener在点击的View前面构造一个自定义工具提示;或滥用OnCreateContextMenuListener 来创建不是的上下文菜单。

这两种方法似乎都不是处理事情的最佳方式,我不确定两者是否可行。我搜索了网络并没有找到任何提示。任何替代方案,或者我应该因为试图这样做而被打湿吗?谢谢!

【问题讨论】:

在我看来 OnLongClickListener 正是你想要的。 A.工具提示并不真正适合智能手机。屏幕空间已经如此有限。工具提示将占据您屏幕的 1/2,因此您不妨使用其他活动或对话框。 B. 用户不期望工具提示。当他们长按时,他们期望一个选择器。我会退后一步,评估您的设计决定。 嘿,@user4,它肯定不会占据屏幕的一半!请参阅下面我对 Mark 的回复。不过,我会找到一个替代方案:) 【参考方案1】:

android Oreo 引入了android:tooltipText 属性,以便在用户长按视图时显示简单的类似 Toast 的工具提示:

<Button
    // ...
    android:tooltipText="@string/share_button_tooltip"/>

虽然已经在 API 26 中引入,但您仍然可以通过 Support Library 的 TooltipCompat 辅助类来使用它:

TooltipCompat.setTooltipText(shareButton, getString(R.string.share_button_tooltip))

我的建议是设置android:contentDescription,然后用它作为提示文字,用1只鸟杀死2块石头:

<Button
    // ...
    android:contentDescription="@string/share_button_tooltip"/>

TooltipCompat.setTooltipText(shareButton, shareButton.getContentDescription())

【讨论】:

以上是关于在长按视图上显示可供性/悬停/工具提示的主要内容,如果未能解决你的问题,请参考以下文章

UIAlertView 警报在长按手势识别器中重复三次

UIAlertView 警报在长按手势识别器中重复三次

长按触发多选

如何在长按或点击时获得点击文本?

使用选择时,TextView 的波纹效果卡在长按上

长按手势在 UIButton 中显示图像