Меню Instagram force touch на Android


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

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

3 2

3 ответа:

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

Https://github.com/tvbarthel/BlurDialogFragment

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

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

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

Https://github.com/nantaphop/HoverTouchView

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

Я нашел 3DTouch, а также в Instagrame.

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

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

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

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

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

Основное использование легко, просто предоставьте экземпляр действия, ресурс макета для peek и pop и 1 или более представлений, которые будут показывать peek и поп, когда долго щелкал.

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

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

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)