Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для vab9petryk
2 / 2 / 1
Регистрация: 28.09.2013
Сообщений: 255

Реализация кастомного View для PopupWindow

27.06.2018, 13:51. Показов 850. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Для констектного меню (вплывающего окна) нужно создать прямоугольник со скругленными углами, обводкой и небольшую стрелку, которая будет указывать на элемент (в ресайклер вью) для которого было вызвано это меню (окно).

Пробовал vector drawable:
+ можно довольно легко менять толщину обводки, ее цвет;
- нужно подбирать padding в xml чтобы контент не налезал на границы;
- стрелка то растягивается, то сжимается, в зависимости от ширины контента, а она должна быть фиксированной длины, растягиваться может прямоугольник.
Попробовал 9.png:
+ стрелка не растягивается;
- если нужно будет поменять цвет или толщину нужно все перерисовывать и создавать 9.png заново.
Общий минус - нету теней (elevation не работает).

Еще может быть такая ситуация что будет выбран самый нижний елемент и тогда Popup нужно отображать над элементом и соответсвенно стрелка должна будет находится внизу. Или контент будет большой по ширине (занимать 2 * item.width) и тогда стрелку нужно будет посунуть правее. Вообщем, стрелка должна быть плавающей.
Как я понял, обычными drawable это не реализовать, и нужно писать свой View или ViewGroup или RecyclerView? Контент это несколько (3-7) елементов типа ImageView+TextView под ним. В связи с этим, не могу понять мне нужен ViewGroup или RecyclerView. Если RecyclerView то я создаю отдельный layout под элемент, и делаю всю настройку в адаптере. Если юзаю ViewGroup нужно будет все элементы прописывать вручную в xml, вешать на каджый клик листенер и т.п. (по моему тут лишное дублирование) или нужно смотреть в сторону создния своего View и создать для него атрибуты, которые позволят мне просто и без гемороя использовать этот View в XML разметке моего кастомного ViewGroup.

Извините за много букв. На рисунке то что нужно сделать (тут без обводки, тем не менее, если возникнет необходимость, то она должна быть добавлена в будующем без гемороя). Как это реализовать?

0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.06.2018, 13:51
Ответы с готовыми решениями:

Вылетает программа при выборе пункта в диалоговом окне (AlertDialog) для кастомного View
Есть MainActivity.java В нем есть функция: public void onClickSettings(View view) { startActivity(new Intent(this,...

MVP для Android игры - реализация View
Добрый вечер! Делаю архитектуру для небольшой игрушки на Android, но возникли вопросы. Как говорится, на 7 раз игру написать в одной...

Создание кастомного View "Матрица"
Здравствуйте! Взялся за написание компонента, который отображает матрицу произвольного размера. public class MatrixView extends...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.06.2018, 13:51
Помогаю со студенческими работами здесь

Перерисовка кастомного View
Доброго времени суток! У меня есть класс, унаследованных от UIView, отрисовка объекта этого класса прописана в методе drawRect:. Мне...

Реализация наследника View
Создание собственного наследника View, выводящего в центр квадрат, размер стороны которого задается в коде программы

Реализация xlsx таблицы через QTreeWidget/View
Добрый день. У меня такая проблемка. Стоит задача создать програмку, которая бы открывала файлы xlsx и выводила бы таблицы в виде дерева,...

Какой адаптер нужен для кастомного ExpandableListView
Доброго дня. Мне нужно отобразить данные в виде сворачивающегося списка. Нашёл подходящий ListView для этого - ExpandableListView. Но...

Что лучше использовать для кастомного диалогового окна?
Добрый день. При нажатии на определенную кнопку, в моей программе должно будет выводиться диалоговое окно с n-ым кол-вом LineEdit....


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru