PopupMenu 单击导致 RecyclerView 滚动

2024-01-10

我里面有一个溢出按钮CardView in Recyclerview。每当我单击按钮时,我都会显示一个弹出菜单,但也会显示RecyclerView正在向下滚动一项。谁能帮我停止这种不必要的滚动吗?

基本上我试图复制与 Playstore 中相同的溢出按钮行为。

Layout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp">

<android.support.v7.widget.CardView
    android:id="@+id/cv_tracks"
    android:layout_width="match_parent"
    android:layout_height="65dp"
    >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="60dp">

        <ImageView
            android:id="@+id/ivTracks"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:background="@drawable/unknown"
           />
        <Button
            android:id="@+id/imgbtn_overflow"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            android:drawableTop="@drawable/ic_overflow"
            android:paddingLeft="25dp"
            android:paddingRight="20dp"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true" /> 
 </RelativeLayout>
 </android.support.v7.widget.CardView>
 </RelativeLayout>

Adapter:

@Override
public void onBindViewHolder(final TracksViewHolder tracksViewHolder, int i) {

    tracksViewHolder.imgBtnOverflow.setTag(i);
    tracksViewHolder.imgBtnOverflow.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //Creating the instance of PopupMenu
            final int position = (Integer) v.getTag();

            PopupMenu popup = new PopupMenu(mContext,tracksViewHolder.imgBtnOverflow);

            //Inflating the Popup using xml file
            popup.getMenuInflater()
                    .inflate(R.menu.popup_menu_overflow, popup.getMenu());


            //registering popup with OnMenuItemClickListener
            popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {

                public boolean onMenuItemClick(MenuItem item) {

                 if(mPopUpClick!=null)
                     mPopUpClick.actionOnPopUpItemClick(position,item,songs.get(position));
                    return true;
                }
            });

            popup.show(); //showing popup menu
        }
    });

}

UPDATE:遇到问题了。当弹出菜单显示时,它会向下滑动列表以显示整个下拉列表。如何根据可用空间调整弹出窗口以向上/向下显示?


尝试使用 android.widget.PopupMenu 而不是 android.support.v7.widget.PopupMenu ,瞧,它有效。这是否是支持库中的一个错误。伟大的开发人员可以证实同样的事情吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PopupMenu 单击导致 RecyclerView 滚动 的相关文章

  • 如何在android中使用kso​​ap2库解析复杂的响应

    大家好 我正在使用 Ksoap2 库解析以下类型的响应 但没有成功获得结果 我的请求如下
  • RecognizerIntent 不起作用; “缺少额外的呼叫包”

    我在 Android 2 2 上使用 RecognizerIntent API 时遇到问题 当我使用以下代码调用 API 时 Intent intent new Intent RecognizerIntent ACTION RECOGNIZ
  • 仅使用 Context 而不是 Activity 实例显示对话框

    如果我使用 Activity 实例 我可以显示对话框 但当我使用上下文或应用程序上下文实例时 对话框不会显示 AlertDialog Builder builder new AlertDialog Builder activity buil
  • 如何列出我的应用程序以供下载文件?

    我想通过我的应用程序从浏览器下载文件 我正在尝试将我的应用程序列在complete action using对话 它显示其他操作 例如查看文件等 但在下载文件的情况下 它不会显示在对话框中 我怎样才能像图片中那样列出我的应用程序 我在我的活
  • Android Studio:无法终止 xxx 的现有进程

    The application is a system application and it will be started by other applications When I install the application from
  • Android 通知 - 显示完整消息

    我的 Android 应用程序必须能够向一大群人发送简短的警报 执行此操作的明显位置是在通知中心 完整的通知毫无问题地显示在股票代码中 但在通知中心 用户只能看到前几个单词 然后是省略号 通知并不长 最多也就10 15个字 如何使文本自动换
  • Android 滚动视图无法以编程方式创建。

    我想在我的应用程序中使用滚动视图 我尝试将文本视图添加到滚动视图中 但除了滚动视图的背景颜色之外 我看不到任何渲染的内容 我是这样做的 public class MyView extends ViewGroup ScrollView myS
  • AdMob 插页式广告仅显示一次

    当广告在一个会话内第二次或第三次打开时 LogCat 会显示错误消息 尝试使用不同的广告管理器启动新的 AdActivity 我通过应用程序主屏幕的 on resume 方法中的意图启动插页式广告 Override public void
  • 防止 FragmentPagerAdapter 中的 WebView 重新加载?

    我有一个 FragmentPagerAdapter 用于显示大约 6 个选项卡 所有选项卡都从 Web 服务器加载数据 其中一个选项卡包含一个从我的服务器加载图像的 WebView 生成图像的服务器端成本很高 因此我想减少重新加载 WebV
  • 如何使用 Android 处理在 Google Cardboard 设备中显示立体图像?

    处理的目的是使使用 Java 绘图变得更加容易 Android 的处理功能具有桌面版的强大功能以及来自传感器的信息 将这些东西放在一起 显示立体图像并像 Oculus Rift 或 Google Cardboard 一样在其周围移动不是很容
  • Kotlin Room 数据库单例模式

    我正在尝试创建单人房间数据库 我找到了两种解决方案 但我不知道它们之间有什么区别 根据这个文件 companion object Volatile private var INSTANCE AppDatabase null fun getI
  • Android NDK C++“wstring”支持

    我有用 C 编写的源代码 lib 现在我想在 Android NDK 项目 NDK 6 中编译并使用相同的源代码 lib 我能够编译大多数 C 文件 除了基于 std wstring 的功能 在 Application mk 中 当我指定时
  • Android Realm.io:行/对象不再有效

    这是我的删除功能 它确实找到了workday1 object public static void delete Context context Workday workday Realm realm getRealm context re
  • 单击输入字段会触发窗口调整大小

    我有一个带有徽标 菜单和搜索的标题 当我在桌面上时 我会按该顺序显示所有元素 但如果我的窗口宽度小于 980 像素 菜单会隐藏 有一个切换按钮 并且徽标会与nav并附在徽标之后 如果宽度更大 则徽标将再次分离并附加到 DOM 中的旧位置 w
  • 从代码动态更改多个文本视图的大小(没有“磁盘上”xml 主题)?

    我有 10 个文本视图在我的代码中 我想更改所有代码的字体大小 在我的布局中我使用了 style定义通用属性 但是我不知道一旦布局出现在屏幕上如何从代码中更改它们 我不想做的是更新 AND 对象 但只写在一处 我知道我可以使用应用主题但这假
  • 点击当前选项卡刷新页面时的 Xamarin.Forms TabbedPage 事件

    我正在使用 Xamarin Forms 构建 iOS Android 应用程序 并有一个 TabbedPage 如果用户已经在选项卡 2 上 并且单击了选项卡 2 并且我希望刷新选项卡 2 或者运行我自己的函数 以便我可以自己刷新它 有没有
  • 在 Android Studio 4.0(Canary) 中找不到预览窗口在哪里

    我正在浏览有关在 Android Studio 4 0 Canary 中运行的 Jetpack 的教程 请参阅下面的链接文章 https developer android com jetpack compose tutorial http
  • Phonegap facebook 插件:android 的各种问题

    我正在尝试将 Phonegap 3 1 与 Phonegap facebook plugin 集成 以使我的应用程序能够使用 facebook 登录 https github com phonegap phonegap facebook p
  • Google Cloud Messaging - 立即收到或长时间延迟收到的消息

    我在大学最后一年的项目中使用谷歌云消息传递 一切正常 但我在使用 GCM 时遇到了一些麻烦 通常 消息要么几乎立即传递 要么有很大的延迟 我读过这篇文章 但我真的认为它不适用于这种情况 GCM 通常会在消息发送后立即传送消息 然而 这并不总
  • 无法通过usb调试安装android应用程序

    我知道这是一个老问题 但我第一次尝试在 Redmi note 4 上安装我的应用程序 每当我尝试安装时 它都会显示一个对话框 安装失败 并显示消息无法建立会话 通过卸载现有版本的 apk 如果存在 然后重新安装 可能可以解决此问题 警告 卸

随机推荐