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

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

14.01.2015, 22:04. Просмотров 717. Ответов 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);
Они создаются в вертикальный ряд, мне надо как то их драг энд дропом перемещать между собой что бы при перемещении в нужную позицию все нижние подвигались, а ту которую я перетаскиваю становилась. Как такое можно сделать? Я не нашел ни одного варианта который бы подходил под эти задачи.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2015, 22:04
Ответы с готовыми решениями:

Достать массив из динамически созданного адаптера)
Есть EditText, кнопка и ListView, по нажатию кнопки в список добавляется...

Изменить свойства программно созданного элемента
Проблема. Есть карта на ней маркеры список имен маркеров можно получить...

Изменение позиции одного layout внутри другого
как изменить позицию одного layout внутри другого ? у меня внутри FrameLayout...

Высота/ширина динамически создаваемого элемента
Внутри таблицы создаю ImageButton и пытаюсь установить у нее высоту и ширину. ...

Вывод информации в зависимости от выбранной позиции элемента в списке
Всем привет! Такой вопрос... Есть главная активити со списком, при нажатии на...

6
Armagedo
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
15.01.2015, 00:24 2
Не проходил, но пробежавшись можно попытаться развить идею

http://www.vogella.com/tutorials/AndroidDragAndDrop/article.html
http://www.tutorialspoint.com/android/android_drag_and_drop.htm
https://developer.android.com/reference/android/view/DragEvent.html

Зацепив вьюху, отслеживать getX и getY её "тени" и сравнивать с тем, где она и что под ней...
1
dajver
410 / 274 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
15.01.2015, 13:43  [ТС] 3
Цитата Сообщение от Armagedo Посмотреть сообщение
http://www.vogella.com/tutorials/And...p/article.html
эту статью я видел, но подстроить под свои нужды
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
15.01.2015, 16:00 4
Ну тут без кастомного списка не обойтись по-моему. Можно расширить LinearLayout - переписать метод addView, чтобы вьюшка не сама ложилась на лейаут, а оборачивалась в контейнер и уже контейнер класть на кастомный LinearLayout. Потом повесить на все обертки onDragListener, который будет переносить дочернюю вьюшку на контейнер который ниже его и так со всеми контейнерами начиная от того откуда был взять элемент для перетаскивания + 1, заканчивая тем на котором сейчас элемент. Не знаю насколько это правильно, но работать будет)
1
dajver
410 / 274 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
15.01.2015, 17:25  [ТС] 5
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Можно расширить LinearLayout - переписать метод addView, чтобы вьюшка не сама ложилась на лейаут, а оборачивалась в контейнер и уже контейнер класть на кастомный LinearLayout. Потом повесить на все обертки onDragListener, который будет переносить дочернюю вьюшку на контейнер который ниже его и так со всеми контейнерами начиная от того откуда был взять элемент для перетаскивания + 1, заканчивая тем на котором сейчас элемент. Не знаю насколько это правильно, но работать будет)
А никакой либы нету с подобным функционалом?) Или там например уже дето готовое не встречали? У меня еще мозг иногда зависает от прошлого вашего примера с созданием саббаттона))
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
15.01.2015, 17:30 6
Лучший ответ Сообщение было отмечено dajver как решение

Решение

dajver, встречал только для ListView подобное.
1
dajver
410 / 274 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
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 в описании исходники, но там стираются надписи при перемещении)) В общем я не знаю что делать.
0
16.01.2015, 02:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2015, 02:13

Как получить данные из EditText, созданного программно, или как узнать ID элемента?
Всем здрасте и с Новым годом! Суть вопроса: Как получить значение, введенное...

Изменение свойст динамически созданного обьекта
Суть проблемы заключается в том что мне нужно в одном обработчике событий...

Изменение элементов ComboBox, созданного динамически
Здравствуйте! Как вы уже могли понять из названия, проблема состоит в...


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

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

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