Android 上的 Instagram 强制触摸菜单

Instagram force touch menu on Android

Android 上的 Instagram 最近添加了新功能,当用户长按浏览部分的项目时,会显示一个弹出菜单并允许用户预览 photo/video 而不是查看其详细信息. iOS 强制触摸功能真的很酷。 有谁知道我们如何在 Android 应用程序上做同样的事情? 我们可以只使用上下文菜单或覆盖 Window 来做到这一点吗? 谢谢

现在我可以使用这个库在 UI 上做同样的事情

https://github.com/tvbarthel/BlurDialogFragment

但问题是: 当我长按按钮时,我必须松开手指才能继续触摸对话框片段。触摸事件仍然发送到 activity 而不是 DialogFragment。

你知道如何在对话框片段显示后立即将触摸事件/焦点传递给它吗?

这是我在互联网上找到的最近的图书馆,

https://github.com/nantaphop/HoverTouchView

可能和IG的不完全一样,但肯定能表达意思

我发现了 3DTouch 以及 Instagrame。

此库位于 Jitpack.io,这意味着要使用它,您必须将以下内容添加到根 build.gradle 文件。

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

然后您需要将以下依赖项添加到您的应用程序 build.gradle 文件中。

dependencies {
    compile 'com.github.shalskar:PeekAndPop:v1.0.1'
}

用法:

基本用法很简单,只需提供一个 activity 实例、用于 peek 和 pop 的布局资源以及 1 个或多个在长按时显示 peek 和 pop 的视图。

PeekAndPop peekAndPop = new PeekAndPop.Builder(this)
                .peekLayout(R.layout.peek_view)
                .longClickViews(view)
                .build();

您可以通过在 PeekAndPop 对象上调用 getPeekView() 来获取速览视图,并使用 findViewById() 来访问速览布局中的任何视图。

View peekView = peekAndPop.getPeekView();
ImageView imageView = peekView.findViewById(R.id.image_view);
TextView textView = peekView.findViewById(R.id.text_view);

通常您会希望在单击列表(或其他可滚动视图)中的项目时显示 peek 和 pop,为确保 peek 和 pop 正常工作,您必须添加这行代码:

        .parentViewGroupToDisallowTouchEvents(viewGroup)