PopupScreen лучше всего подходит для вашего вопроса.Можете ли вы попробовать опубликовать код, который не работал?
Другой вариант - использовать менеджеры для разделения экрана (старший менеджер и младший менеджер) и удерживать еще два менеджера: один, который будет отображаться при нажатии.и тот, который будет использоваться в качестве указателя на отображаемый диспетчер.Затем, когда происходит событие замены, вы должны вызвать следующую функцию:
void updateManagers(boolean click)
{
if(click)
{
currentManager = afterClickManager;
}
else
{
currrentManager = beforeClickManager;
}
invalidate();
}
, где currentManager - это экземпляр Manager, а afterClickManager & beforeClickManager - это экземпляры некоторого класса, который расширяет Manager (нет необходимоститот же класс).
Обратите внимание, что вы должны добавить currentManager в свой макет экрана перед использованием функции инвалида.