Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
IlushaMax
0 / 0 / 4
Регистрация: 09.04.2016
Сообщений: 128
Завершенные тесты: 1
1

ConstraintSet работает не так как ожидается в Handler

04.10.2018, 20:31. Просмотров 950. Ответов 7

Делаю визуализацию сортировки.
Сначала хочу реализовать swap. Два элемента подсвечиваются красным, меняются местами, по списку обновляется их расположение. Не могу понять как вернуть цвет на черный




Кликните здесь для просмотра всего текста
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
40
41
    
    int[] list = {0,1,2,3,4,5,6,7,8};
    List<Integer> ID;
    List<Integer> DRAWABLE;
    List<Integer> RED_DRAWABLE;
..............
    void swap(final int index1,final int index2)
    {
        final ImageView view1 = findViewById(ID.get(list[index1]));
        final ImageView view2 = findViewById(ID.get(list[index2]));
        view1.setImageResource(RED_DRAWABLE.get(list[index1]));
        view2.setImageResource(RED_DRAWABLE.get(list[index2]));
        int buff = list[index1];
        list[index1] = list[index2];
        list[index2] = buff;
 
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                updateList();
//                handler.postDelayed(new Runnable() {
//                    @Override
//                    public void run() {
//                        view1.setImageResource(DRAWABLE.get(list[index1]));
//                        view2.setImageResource(DRAWABLE.get(list[index2]));
//                    }
//                },1000);
            }
        },1000);
    }
 
 
 
    void updateList() {
        ConstraintSet constraintSet = new ConstraintSet();
        constraintSet.clone(constraintLayout);
        for (int i=0;i<list.length;i++){
            constraintSet.setHorizontalBias(ID.get(list[i]),(i+1)*0.1f);
        }
        constraintSet.applyTo(constraintLayout);
    }
0
Изображения
 
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2018, 20:31
Ответы с готовыми решениями:

#define работает не так, как ожидается
Здравствуйте. Подскажите, пожалуйста, почему в таком случае некорректно использовать #define: ...

Почему цикл работает не так, как ожидается?
Двумя способами реализовал цикл, который увеличивает годовую зарплату на 10% при нажатии 'y' до тех...

Почему malloc работает не так, как ожидается?
int main() { int* p =malloc(sizeof(int)); p=5; printf(&quot;%s\n&quot;,strerror(errno)); ...

Условие в цикле do while работает не так, как ожидается
Проблема в условие цикла. Вот Код.// ConsoleApplication4.cpp: определяет точку входа для...

7
IlushaMax
0 / 0 / 4
Регистрация: 09.04.2016
Сообщений: 128
Завершенные тесты: 1
04.10.2018, 20:40  [ТС] 2
если можно объясните еще почему то что закомментировано не работает

Добавлено через 1 минуту
XML
1
2
3
4
5
6
7
8
9
10
11
12
<ImageView
        android:id="@+id/num9"
        style="@style/ArrayElement"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:src="@drawable/icons8_9_24"
        app:layout_constraintHorizontal_bias="0.9"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
0
ExFau$t
1065 / 833 / 260
Регистрация: 08.05.2012
Сообщений: 3,964
05.10.2018, 10:16 3
Я бы сделал списком с адаптером, вызывая по очереди изменение цвета, Collections.swap и notifyItemMoved. В onBindViewHolder красить в чёрный, чтобы при первом запуске или при обновлении адаптера всё было в исходном состоянии.
0
IlushaMax
0 / 0 / 4
Регистрация: 09.04.2016
Сообщений: 128
Завершенные тесты: 1
05.10.2018, 17:03  [ТС] 4
А конкретно, что за список с адаптером? Нужно создать своё View, которое наследуется от какого-то класса(какого)? или уже готовый есть(какой)
0
ExFau$t
1065 / 833 / 260
Регистрация: 08.05.2012
Сообщений: 3,964
06.10.2018, 10:22 5
Лучший ответ Сообщение было отмечено IlushaMax как решение

Решение

RecyclerView
1
IlushaMax
0 / 0 / 4
Регистрация: 09.04.2016
Сообщений: 128
Завершенные тесты: 1
07.10.2018, 14:42  [ТС] 6
все-таки, почему это может не работать? recyclerview не очень подходит под другие сортировки, которые я хочу реализовать.

Добавлено через 5 минут
я забыл написать как отрабатывает этот код: сначала подсвечиваются красным
1 3 2 4 5 6 7 8 9(поменялись, все еще красные)
1 2 3 4 5 6 7 8 9(не только цвет меняется, но и цифры, хотя view одни и те же)
но это только в первый раз так срабатывает, дальше меняется нормально

Добавлено через 1 минуту
мне кажется что ошибка очевидная, но из-за моей неопытности я ее не могу найти

Добавлено через 14 минут
а, нет, всегда так отрабатывает
0
IlushaMax
0 / 0 / 4
Регистрация: 09.04.2016
Сообщений: 128
Завершенные тесты: 1
07.10.2018, 14:51  [ТС] 7
gif
0
Миниатюры
ConstraintSet работает не так как ожидается в Handler  
IlushaMax
0 / 0 / 4
Регистрация: 09.04.2016
Сообщений: 128
Завершенные тесты: 1
07.10.2018, 22:39  [ТС] 8
Проблема решена, тему можно закрывать
0
07.10.2018, 22:39
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2018, 22:39

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Код работает не так, как ожидается (найти и исправить ошибки)
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; char deletika(char a, long ot, long...

Прочитать символы из файла, используя eof() (программа работает не так, как ожидается)
Здравствуйте, мне нужно прочитать символы из файла(желательно с пробелами). Использую eof(), но...

Пользовательская функция работает не так, как ожидается: найти причины странного поведения функции
Ребята помогите, пожалуйста. Создаю функцию суммы дробных чисел, но она ничего не возвращает, экран...

Объяснить, почему программа для подсчёта скобок в тексте работает не так, как ожидается
я ввожу текст в блокноте с скобками, мне нужно подсчитать количество скобок в программе, но у меня...


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

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

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