Instagram заставляет сенсорное меню на Android

Instagram на Android недавно добавил новую функцию, когда пользователь долго нажимает на элементы в разделе "Обзор", появляется всплывающее меню и позволяет пользователю предварительно просматривать фото / видео, вместо того чтобы переходить к его деталям. Это действительно круто, как iOS Force Touch. Кто-нибудь знает какие-либо идеи, как мы можем сделать то же самое на Android-приложении? Можем ли мы просто использовать контекстное меню или оверлейное окно, чтобы сделать это? Спасибо

введите описание изображения здесь

3 ответа

Решение

Теперь я могу сделать то же самое на пользовательском интерфейсе с этой библиотекой

https://github.com/tvbarthel/BlurDialogFragment

Но дело в том, что когда я долго нажимаю кнопку, мне нужно отпустить палец, чтобы продолжить касаться фрагмента диалога. Событие касания по-прежнему отправляется в действие, а не в DialogFragment.

Знаете ли вы, как передать сенсорное событие / фокус фрагменту диалога сразу после его показа?

Это самая близкая библиотека, которую я нашел в интернете,

https://github.com/nantaphop/HoverTouchView

это может быть не совсем как у IG, но наверняка это дает идею

Нашел 3DTouch так же как и в Инстаграме.

Эта библиотека размещена на Jitpack.io, что означает, что для ее использования вам необходимо добавить следующее в корневой файл build.gradle.

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

И тогда вам нужно будет добавить следующую зависимость в ваш файл build.gradle приложений.

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

Использование:

Базовое использование легко, просто предоставьте экземпляр действия, ресурс макета для просмотра и всплывающих окон и 1 или более представлений, которые будут отображать просмотр и всплывающие сообщения при длительном нажатии.

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

Вы можете получить обзорное представление, вызвав getPeekView() для объекта PeekAndPop и используя findViewById(), чтобы получить доступ к любым представлениям в макете просмотра.

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

Часто вы хотите, чтобы при нажатии на элемент в списке (или в другом представлении с прокруткой) отображался режим просмотра и просмотра, чтобы убедиться, что просмотр и просмотр работают правильно, вам необходимо добавить следующую строку кода:

        .parentViewGroupToDisallowTouchEvents(viewGroup)
Другие вопросы по тегам