Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
werrt
4 / 4 / 4
Регистрация: 07.02.2008
Сообщений: 350
1

Swipe и RecycledView

24.10.2017, 02:23. Просмотров 697. Ответов 2
Метки нет (Все метки)

Добрый день.
Пытаюсь сделать swipe на элементах RecycledView.
Layoutдля CardView:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_menu_item_card"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:elevation="20dp"
    app:cardCornerRadius="10dp">
 
 
    <LinearLayout
        android:id="@+id/bg"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:background="@color/colorPrimary">
<Button
    android:layout_width="wrap_content"
    android:text="нажать"
    android:layout_height="wrap_content" />
    </LinearLayout>
 
    <LinearLayout
        android:id="@+id/fr"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="bottom"
        android:background="@color/colorAccent">
 
        <TextView
            android:id="@+id/main_menu_item_card_text"
 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom" />
    </LinearLayout>
</android.support.v7.widget.CardView>
Состоит из двух LinerLayout, один как бы будет верхним(android:id="@+id/fr"), который и должен двигаться по swipe-у и нижний (android:id="@+id/bg")который открывается.
Нагуглил, что надо использовать для подобного ItemTouchHelper.Callback
Соответвенно пишу:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class MyItemTouchHelper extends ItemTouchHelper.Callback {
//задаю здесь тип свайпа     
 @Override
    public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
        return makeFlag(ItemTouchHelper.ACTION_STATE_SWIPE, ItemTouchHelper.RIGHT | ItemTouchHelper.LEFT);
    }
 
    @Override
    public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
        return false;
    }
 
 
    @Override
    public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
        }
   }
 
// здесь как я понял и должна творится вся магия
    @Override
    public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
 
// этой строчкой я двигаю верхний слой       
 ((MainMenuViewHolder) viewHolder).frLoyaut.setTranslationX(dX);
       
    }
 
 
}
Проблема в том, что когда прекращаю swipe(палец от экрана убираю) слой не остается на месте, а "свапается" за экран. А при попытке нажать на кнопку на нижнем слое, верхний слой возвращается на место.
Может кто делал что нить подобное. нужно чтобы при swipe слой смещался на заданную позицию, а не улетал за край экрана.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2017, 02:23
Ответы с готовыми решениями:

Swipe переключение
Всем привет! Решил реализовать swipe-листание,но ничего не получается. все сайты пооблазил,так и...

Swipe пример
Дайте, пожалуйста пример простого кода для свайпа. Например провел пальцем по Имейдж вью влево- ...

swipe в android 2.1
Подскажите как можно сделать переход по activity с помощью swipe для android 2.1? И можно ли...

Swipe навигация в приложении
Здравствуйте. Возникла потребность в навигации между активити жестами(свайп). Ведешь пальцем влево...

RecycledView с "маской"
Добрый день. Подскажите, пожалуйста, с помощью чего реализовать: обьеденить RecycledView и...

2
ILNAR_93
Android
243 / 240 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
24.10.2017, 07:58 2
https://www.learn2crack.com/2016/02/custom-swipe-recyclerview.html
0
werrt
4 / 4 / 4
Регистрация: 07.02.2008
Сообщений: 350
24.10.2017, 12:10  [ТС] 3
ILNAR_93, это немного не то. Схема таже, но при свайпе влево или вправо вся карточка уходит за экран. Мне нужно чтобы при свайпе она останавливалась на полэкрана, а под ней были бы кнопки нижнего слоя.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2017, 12:10

Как реализовать swipe меню
Подскажите как реализовать подобное меню.

Swipe к TextView или Button
Можно ли применить Swipe не конкретно для каждого активити, а к TextView, или, например, Button,...

[Swipe, Fragment] - интерфейс как у маркета
Приветствую, которую неделю туплю и не могу сделать интерфейс как у маркета. Задача, сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru