2015-03-18 2 views
1

Приложение имеет 3 действия: A, B и C.
«B» имеет стиль = Theme.Dialog, поэтому его можно отобразить на части экрана сверху «A» и «C».
Идея состоит в том, чтобы показать «B» сверху, а «A» заменяется на «C», поэтому переход между «A» и «C» будет бесшовным для пользователя.

Вопросы:Два уровня активности на Android. Бесшовный переход

  1. это правильный подход (или я должен использовать PopupWindow и т.д. вместо активности "B")?
  2. Когда запускается действие «C», «B» скрывается и снова отображается (onPause/onResume снова называется), который выглядит как «B», мигает. Есть ли способ исправить это?

Иллюстрация:

  1. начальное состояние. «A» запущен «A»
  2. «A» завершен, «B» все еще сверху
  3. «C» запущен, «B» моргнул и вывел вперед (из-за launchMode="singleInstance")

enter image description here

+0

Не могли бы вы привести пример того, что содержат A и C? – iRuth

+0

A - список файлов, C - редактор изображений (который тяжелый и уже реализован как отдельный вид деятельности), B - форма начальной настройки для редактора (так что пользователь может потратить время на первоначальную настройку, пока C готовится на фоне). – surlac

ответ

0

Я не думаю, что вы могли бы избежать «мигать» эффект на в, если а и в 2 мероприятия.

Возможно, решение этого вопроса заключается в объединении A и C в одном и том же действии. Управлять государством, чтобы знать, если новый вид деятельности в в состоянии А или С.

Например:

boolean stateA = ...; 
if(stateA){ 
setContentView(R.layout.a); 
//use code of A 
[...] 
}else{ 
setContentView(R.layout.b); 
//use code of B 
[...] 
} 

Это кажется мне, тем легче решение.

+0

@RuslanSharifullin, это полезно? – LaurentY