Я использую пользовательскую расширяемую панель действий в своей игре.
Я использую ViewDragHelper, чтобы обрабатывать перетаскивание и покачивание представления на панели, которое содержится в подклассе LinearLayout я для присоединения ViewDragHelper.
Следующие ссылки оказали большую помощь для достижения этой цели:
- Учебник по ViewDragHelper: http://flavienlaurent.com/blog/2013/08/28/each-navigation-drawer-hides-a-viewdraghelper/
- Освоение сенсорной системы Android: https://www.youtube.com/watch?v=EZAoJU-nUyI (что дало мне ключ к тому, чтобы сделать просмотр кликабельным и перетаскиваемым)
Единственная проблема, с которой я сталкиваюсь, - это поведение  layout() моего родительского LinearLayout: при каждом вызове layout()/onLayout() дочерняя перетаскиваемая/расширяемая панель действий  reset в исходное положение (тот, который установлен в макете XML).
Почему это?
(По моему опыту layout() никогда не смешивается с позициями, которые уже были перемещены)
