Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
dajver
 Аватар для dajver
406 / 270 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
#1

Изменение позиции динамически созданного элемента - Android

14.01.2015, 22:04. Просмотров 564. Ответов 6
Метки нет (Все метки)

Народ, это очередной вопрос про динамические штучки) Но тут совсем уже ступор, в общем задача состоит какая, я создаю динамически кастомные вьюхи.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
LinearLayout linear = (LinearLayout) rootView.findViewById(R.id.langLayout);
        final View view = getActivity().getLayoutInflater().inflate(R.layout.custom_lang_layout, null);
        TextView text = (TextView) view.findViewById(R.id.langName);
        text.setText(langName);
        Button deleteField = (Button) view.findViewById(R.id.button2);
        deleteField.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    ((LinearLayout) view.getParent()).removeView(view);
                    allEds.remove(view);
                } catch(IndexOutOfBoundsException ex) {
                    ex.printStackTrace();
                }
            }
        });
        allEds.add(view);
        linear.addView(view);
Они создаются в вертикальный ряд, мне надо как то их драг энд дропом перемещать между собой что бы при перемещении в нужную позицию все нижние подвигались, а ту которую я перетаскиваю становилась. Как такое можно сделать? Я не нашел ни одного варианта который бы подходил под эти задачи.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2015, 22:04     Изменение позиции динамически созданного элемента
Посмотрите здесь:

Android Запуск созданного приложения на реальном планшете
Не обрабатывается клик по позиции ListView Android
Выбрать запись по позиции SQLite Android
Как получить данные из EditText, созданного программно, или как узнать ID элемента? Android
Android Сохранение позиции spinner
Android Высота/ширина динамически создаваемого элемента
Вывод информации в зависимости от выбранной позиции элемента в списке Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
15.01.2015, 00:24     Изменение позиции динамически созданного элемента #2
Не проходил, но пробежавшись можно попытаться развить идею

http://www.vogella.com/tutorials/And...p/article.html
http://www.tutorialspoint.com/androi...g_and_drop.htm
https://developer.android.com/refere...DragEvent.html

Зацепив вьюху, отслеживать getX и getY её "тени" и сравнивать с тем, где она и что под ней...
dajver
 Аватар для dajver
406 / 270 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
15.01.2015, 13:43  [ТС]     Изменение позиции динамически созданного элемента #3
Цитата Сообщение от Armagedo Посмотреть сообщение
http://www.vogella.com/tutorials/And...p/article.html
эту статью я видел, но подстроить под свои нужды
Spelcrawler
522 / 492 / 110
Регистрация: 12.03.2014
Сообщений: 1,643
Завершенные тесты: 1
15.01.2015, 16:00     Изменение позиции динамически созданного элемента #4
Ну тут без кастомного списка не обойтись по-моему. Можно расширить LinearLayout - переписать метод addView, чтобы вьюшка не сама ложилась на лейаут, а оборачивалась в контейнер и уже контейнер класть на кастомный LinearLayout. Потом повесить на все обертки onDragListener, который будет переносить дочернюю вьюшку на контейнер который ниже его и так со всеми контейнерами начиная от того откуда был взять элемент для перетаскивания + 1, заканчивая тем на котором сейчас элемент. Не знаю насколько это правильно, но работать будет)
dajver
 Аватар для dajver
406 / 270 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
15.01.2015, 17:25  [ТС]     Изменение позиции динамически созданного элемента #5
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Можно расширить LinearLayout - переписать метод addView, чтобы вьюшка не сама ложилась на лейаут, а оборачивалась в контейнер и уже контейнер класть на кастомный LinearLayout. Потом повесить на все обертки onDragListener, который будет переносить дочернюю вьюшку на контейнер который ниже его и так со всеми контейнерами начиная от того откуда был взять элемент для перетаскивания + 1, заканчивая тем на котором сейчас элемент. Не знаю насколько это правильно, но работать будет)
А никакой либы нету с подобным функционалом?) Или там например уже дето готовое не встречали? У меня еще мозг иногда зависает от прошлого вашего примера с созданием саббаттона))
Spelcrawler
522 / 492 / 110
Регистрация: 12.03.2014
Сообщений: 1,643
Завершенные тесты: 1
15.01.2015, 17:30     Изменение позиции динамически созданного элемента #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
dajver, встречал только для ListView подобное.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2015, 02:13     Изменение позиции динамически созданного элемента
Еще ссылки по теме:

Android смена позиции скроллинга Android
Как получить значение, введенное пользователем в EditText, созданного программно? Android
Android Установка позиции курсора в EditText
Android Достать массив из динамически созданного адаптера)
Android Изменить свойства программно созданного элемента

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

Или воспользуйтесь поиском по форуму:
dajver
 Аватар для dajver
406 / 270 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
16.01.2015, 02:13  [ТС]     Изменение позиции динамически созданного элемента #7
Цитата Сообщение от Spelcrawler Посмотреть сообщение
встречал только для ListView подобное.
Значит буду переделывать на listView) иного выхода не вижу, спасибо

Добавлено через 5 часов 28 минут
Че то у меня не получается подключить эту либу в студию, попробовал кастомный отсюда http://stoflru.org/questions/2360296...-drop-listview, но там не перемещаются, они перетаскиваются но не остаются на местах в которых я перемещаю, нашел еще один пример https://www.youtube.com/watch?v=_BZIvjMgH-Q в описании исходники, но там стираются надписи при перемещении)) В общем я не знаю что делать.
Yandex
Объявления
16.01.2015, 02:13     Изменение позиции динамически созданного элемента
Ответ Создать тему
Опции темы

Текущее время: 03:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru