如何解决阻止ImageButton工具提示在片段上悬停出现
目前,我观察到一种奇怪的行为,即“通过”片段显示工具提示,并且我不知道如何消除它。任何想法或提示将不胜感激!
我有一个ImageButton
和一些contentDescription
:
<androidx.appcompat.widget.AppCompatImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="Content description"
android:src="@drawable/ic_image"
/>
这样做是为了允许用户在将Stylus / S笔或鼠标指针悬停在图像上时看到帮助文本。这是理想的行为:
在活动上方显示AlertDialog
时,不会显示任何工具提示。这也是预期的行为:
但是,当片段显示在ImageButton
上方时,总是显示工具提示。这是不希望的行为,也是这个问题的极大奥秘。片段具有半透明的绿色背景:
片段布局中使用了一个简单的FrameLayout
:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#B94EC14A"
/>
用户可以点击该片段。
如果添加了这些行,则可以摆脱“点击进入”行为,而不能摆脱“悬停通过”行为:
layout1.setClickable(true);
layout1.setFocusable(true);
layout1.setOnTouchListener((v,event) -> true);
layout1.setOnHoverListener((v,event) -> true);
layout1.setOnGenericMotionListener((v,event) -> true);
似乎在这里使用了其他事件。
- 哪种事件用于通过视图转换“悬停”事件?
- 如何防止此工具提示出现? (需要与AlertDialog类似的行为)
解决方法
不幸的是,我找不到问题的原因,所以我最终以一个对话框的形式开始了一个片段:
MyFragment fragment = new MyFragment();
...
fragment.setArguments(bundle);
fragment.setCancelable(false);
fragment.show(getSupportFragmentManager(),"dialog");
或者对于不同的用例,将片段打包为一个空的活动并开始该活动:
Intent intent = new Intent(this,MyActivity.class);
intent.putExtra(...);
startActivityForResult(intent,REQUEST_CODE);
在这种情况下(如问题所述),工具提示不会显示在悬停上。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。