我的应用程序中具有拖放功能,该功能允许用户在屏幕上四处移动卡片图像。 直到在运行Android 10的Pixel设备上对其进行了测试,该功能才在所有设备上起作用。 即使关闭了应用程序,甚至卸载了应用程序,图像仍保留在屏幕上。 只有完全重启设备才能清除图像。

我显然首先怀疑我的代码,但是由于imageViews已与应用程序环境断开连接,所以我现在怀疑Android 10的RunTime系统有问题。

任何想法将不胜感激。 如果需要的话,我可以发布代码,但是该类大约有3000行,因此我不会发布整个内容。

在此处输入图片说明

#1楼 票数:0

现在,它已在Google中记录为错误并已分配,因此正在调查中: 拖放错误报告

这是一种可以稳定应用程序的变通办法,以便人们可以使用它,并且如果某些开发人员对UI更改感到满意,这甚至可能是完全可接受的解决方案。

使用OnLongClickListener代替OnTouchListener开始拖动。 最初,用户可以触摸和拖动,而现在他们必须长按。 保留onTouch以便在需要时使用View进行其他操作,但是将startDrag内容移至onLongClickHandler。 例如:

public boolean onLongClick(View v) {
        //...
        // get the card ready for dragging
        DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(v);
        shadowBuilder.getView().setAlpha(1.0f);
        // deprecated. use startDragAndDrop but need minimum SDK to be 24
        // the original position is sent as LocalState (third argument)
        if (v.startDrag(null, shadowBuilder, position, 0)) {
            // make the moving view's old position appear invisible since
            // its replaced by the drag shadow
            v.setAlpha(0f);
        }
        return true;
    }

当从onLongClick而不是onTouch启动startDrag时,该问题完全消失,没有其他更改。 这不是修复程序,因为应该可以从onTouchListener开始拖动。

  ask by usajnf translate from so

未解决问题?本站智能推荐:

1回复

在 Android 10 上进行后台扫描时的限制?

Android 上的蓝牙扫描似乎有很多“隐藏功能”。 对于初学者来说,有一个“30 秒限制”( Android 7.0 ble scan no result )。 然后你必须在后台模式下设置一个 ScanFilter 否则你不会得到任何结果(找不到这个的参考)。 最近我发现,当我在 Androi
1回复

Windows 10无法识别像素电话

当我将其插入计算机(Windows 10)时,我的Google Pixel 3 XL android 11手机未显示在设备管理器中。 实际上,它正在充电,但是电话和计算机上都没有通知。 我做的事 好吧,我已经尝试了一些解决方法,如Internet上的一些线程所述... 开发人员模式已激活
1回复

为什么 Android 应用升级到 Android 10 后会丢失 WebView 数据?

我们至少有两个 Android 应用程序使用 webview 组件和 IndexedDB、LocalStorage 和 Cookies 形式的持久离线数据。 随着 Pixel XL(以及至少一台其他设备)从 Android 9 升级到 Android 10,他们似乎丢失了所有这些数据。 在过去 5
1回复

将自定义内核刷入 Android 手机(像素)

我正在尝试修改 Pixel 4a 5g 手机的内核。 为此,我已经从https://developers.google.com/android/images下载了股票 boot.img 。 我还有一个内核 src 代码( https://android.googlesource.com/kernel
1回复

在解锁的智能手机上安装旧的(不受支持的)Android 版本

我想在 Pixel 3a 上安装较旧的 Android 版本。 我看到了 Google 提供的系统映像,但他们只提供 Android9.0-10.0(请参阅此处)。 我已经解锁了引导加载程序,所以我想我已经准备好开始刷机了。 出于测试目的,我想安装 Android5.0 和 Android7.0。
2回复

Android 10 生物识别管理器安全性

自 2019 年底以来,Android 正在弃用 FingerprintManager 以支持 BiometricManager。此更新对开发人员和设计人员来说是个好消息,因为他们不需要解决许多繁琐的生物识别设计和行为。 然而... 这可以防止开发人员避免不太安全的生物识别选项,唯一的解决方
1回复

Android 9上的android.database.sqlite.SQLiteCantOpenDatabaseException

我的应用程序是实时的,并且从Google Play控制台中崩溃了“ 引起:android.database.sqlite.SQLiteCantOpenDatabaseException: ”。 它主要发生在Android 9操作系统上,其中50%的设备都是Google Pixel设备。
1回复

连接到Android后端时出错

我在桌面上使用android模拟器。 当我尝试连接到后端时出现以下错误。 这是我尝试过的东西。 我的Android清单具有以下权限 我确认可以从模拟器内的浏览器访问该URL。 它很慢,但是可以解析并连接。 这是我的开发环境设置 我需要调查哪些可能的罪