Отдельный элемент (ViewGroup) для Android.
Добрый день,
Нужна отдельная ViewGroup (далее А), которую можно добавить в layout Андроид приложения, которая будет отвечать следующим требованиям:
1) Можно добавить дочернюю самую обычную кнопку, которая будет иметь некую свою логику.
2) Можно добавить кнопку (Б) (которую необходимо реализовать),по нажатии на которую из-под А выплывает панель (ViewGroup, назовем ее В) с кнопками.
3) При инициализации в коде можно панели В задать список CustomButton, интерфейс, который имеет методы getIcon(), action(), первый - возвращает иконку, второй - выполняет действие, по нажатию на кнопку.
4) Скорости анимации открытия закрытия панели В зашиты константами в реализации.
5) При многократном нажатии на кнопку, которая отвечает за скрытие\открытие панели не должно быть артефактов, а панель должна начать двигаться в обратном направлении с того момента, на котором остановилась.
6) В панели А могут быть несколько кнопок Б по нажатии на которые будут выдвигаться разные панели.
7) Если возможно предусмотреть возможность делать панель А частично прозрачной, так, чтобы при выдвигании панели В ее не было видно за кнопками на панели А.
8) Панель В также имеет постоянную кнопку +, по нажатии на которую показывается диалог, гед можно выбрать одну из заранее заготовленных реализаций интерфейса CustomButton, которая имеет своб картинку и action().
9) При сохранении изменений в п.8. кнопка немедленно появляется в панели В с анимацией (кнопка появляется между последней иконкой и плюсиков там, что иконки и плюс "разъезжаются в стороны").
10) Надо предусмотреть, что иконок быть много - нужен скроллинг.
11) Можно лонгтапом на любую иконку кроми плюсика и удержании войти в "режим редактирования" - аналогично перетаскиванию табов в верхней панели табов в браузерах. Вместо плюсика появляется "корзина", иконку, на которой был начат лонгтап можно перетащить на новое место (происходит анимация смены мест с той, над которой идет перемещение, если дотащили до корзины и отпустили, то эта иконка удаляется и вызывается соотвествующий callback (интерфейс листнера нужно создать и иметь возможность установить его для панели). В callback передастся интерфейс CustomButton.
При отпускании не на корзине - "режим редактирования" прекращается, иконка, возвращается на новое (или свое, если не была передвинута) место - анимированно, т.е. не прыгает на место, а перелетает на него.
Пример:
http://dimlix.com/screens/2014_09_d.png
1,2,3 - кнопки на панели А, одна или больше из них могут быть такими, по нажатии на которую выедет панель.
4 - кнопка плюсика,
5 - уже созданные иконки.
Панель с 1,2,3 - полупрозрачная, но, если возможно при выезжании снизу панели логотипы не должны "просвечиваться" через панель А.
Просьба оставлять заявки с примерным сроком и бюджетом.