Объединение View элементов

Интерфейс, диалоги, темы, стили, меню
Ответить
Аватара пользователя
supradin
Сообщения: 5
Зарегистрирован: 13 апр 2014, 04:12

Объединение View элементов

Сообщение supradin » 13 апр 2014, 04:23

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

Итак, у меня к вам следующий вопрос: "Можно ли каким-то образом объединить View-компоненты? Например, ImageButton и TextField."
Я хочу иметь полноценный View-компонент, который будет полностью описывать папку/файл (т.е. ярлычок + имя). Так как я изучил лишь первые уроков 20, возможно я чего-то просто напросто не знаю :)

Моя идея решения этой проблемы мне, честно говоря, не очень нравится
(в единый компонент как бы объединены folderButton1 и текст textView2)
Изображение

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Объединение View элементов

Сообщение Foenix » 13 апр 2014, 08:12

вам стоит начать с уроков, тогда этот вопрос отпадет сам собой
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
supradin
Сообщения: 5
Зарегистрирован: 13 апр 2014, 04:12

Re: Объединение View элементов

Сообщение supradin » 13 апр 2014, 13:13

Foenix, не мог бы ты указать, какие уроки мне помогут в решении проблемы?
Может я чего упустил, или даже не дошёл...

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Объединение View элементов

Сообщение Foenix » 13 апр 2014, 16:25

Вы сказали, что в первый день программируете, значит ни одного урока пройти не смогли. Да и не похоже, что читали. Начинайте с самого начала - поймете рекомендуемый принцип построение layout-а. А то у вас совсем что-то неординарное. Нарушать правила нужно с пониманием что именно ты делаешь.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
supradin
Сообщения: 5
Зарегистрирован: 13 апр 2014, 04:12

Re: Объединение View элементов

Сообщение supradin » 14 апр 2014, 00:19

Например, у меня задача: иметь на рабочем столе 12 файлов/папок (пусть 3 строки по 4 столбца)
Саму эту задачу удобнее всего решить, используя TableLayout. Что, собственно, я и сделал.

Что касается вопроса ассоциации ярлычок+подпись, то самое логичное, что приходит на ум, это конечно RelativeLayout. Посредством этого лэйаута мы можем легко "пригвоздить" текст к каждому ярлычку.
Но когда я пытался создать RelativeLayout внутри TableLayout (то есть создаю три tableRow, в каждой из них имеются связанные RelativeL пары ярлычок+имя), выводились ошибки и недовольства со стороны иде. Пока я не понял, что так его разозлило, но от этой идеи отказался.

Поэтому и пришёл к идее иметь в одной строке ярлычок, а в строке ниже - подпись. Хотя я и говорю, что данная реализация мне совершенно не нравится.
Последний раз редактировалось supradin 14 апр 2014, 00:29, всего редактировалось 1 раз.

Аватара пользователя
supradin
Сообщения: 5
Зарегистрирован: 13 апр 2014, 04:12

Re: Объединение View элементов

Сообщение supradin » 14 апр 2014, 00:28

Я начал думаю над использованием AbsolutLayout. Да, в уроках говорится прямым текстом: "Это самый ненадёжный лэйаут. При его использовании могут возникнуть ошибки при использовании приложении на устройствах с разными диагоналями"

(Задача та же, иметь на рабочем столе 12 файлов/папок. Пусть 3 строки по 4 столбца)
Собственно, в чём состоит идея:
  1. на каждом экране мы узнаёт его собственные параметры длины и ширины экрана
  2. на основании их мы получаем центр для расположения каждой иконки (например, если scrLength - длина экрана, то первый столбец каждой строки по абсциссе будет располагаться scrLength/5. аналогично получаем координаты по ординате)
  3. собственно, расставляем ярлычки по полученным координатам и "приклеиваем" к ним снизу подписи. Профит!
То есть эта идея использует AbsoluteLayout, вместо Table.
Но вопрос, можно ли AbsoluteL использовать TableL, остаётся открытым. Т.к. сейчас ПК нет под рукой.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Объединение View элементов

Сообщение Foenix » 14 апр 2014, 10:55

Попробуйте теперь с RelativeLayout :)
Разместите свои картинки в 1 ряду, дав им одинаковые веса (тогда автоматом разделится все место н аэкране под них) а затем надпись - под каждой картинкой закрепите.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
supradin
Сообщения: 5
Зарегистрирован: 13 апр 2014, 04:12

Re: Объединение View элементов

Сообщение supradin » 17 май 2014, 15:16

Пожалуй, я уже все возможные лэйауты перебрал... (зато, надеюсь, однажды разберусь) Хорошо, что их только 4 :)

Foenix, спасибо Вам большое! Совсем неловко себя чувствую, что так запоздал со словами благодарности..

Ответить