2015-10-13 4 views
0

может помочь мне с такой проблемой.экономия просмотров состояние до перехода

Я хочу использовать сцены и TransitionManager для показа красивых эффектов перехода, как, что:

final Scene scene = Scene.getSceneForLayout((ViewGroup)findViewById(R.id.bottom), R.layout.scene_pause, MainActivity.this); 

TransitionSet set = new TransitionSet(); 
set.addTransition(new Fade().setDuration(1500)); 
set.addTransition(new ChangeBounds().setDuration(1700)); 
set.setOrdering(TransitionSet.ORDERING_TOGETHER);    
set.setInterpolator(new AccelerateInterpolator()); 
TransitionManager.go(scene,set); 

Он работает, но, как я понял, сцена занимает Просмотры состояния (например, вводимый коэффициент, фоны и так далее) от соответствующего макета (в моем случае R.layout.scene_pause). В этом макете у меня есть кнопка с тремя состояниями и текущее пребывание этой кнопки после перехода всегда такое же, как в файле макета, независимо от предыдущего состояния этой кнопки. Как я могу сохранить или установить состояние своих представлений перед началом перехода?

+0

Посмотрите на эту статью, они дают подробную информацию о том, как работает структура переходов http://www.androiddesignpatterns.com/2014/12/ Активность-фрагмент-переходы-в-android-lollipop-part1.html – droidpl

+0

Большое спасибо за ссылку, но поскольку я понял, что они рассматривают переходы активности и фрагмента, и мне это не нужно, мне нужен простой переход между двумя сценами в одном конкретном активность без каких-либо фрагментов, просто измените между 2 видами – borune

+0

Да, я предоставил эту ссылку, поскольку она объясняет, как она работает за кулисами, не имеет значения, является ли это фрагментом, активностью или представлением. Рамка перехода всегда работает так же, как и – droidpl

ответ

0

это может быть достигнуто с помощью такого кода:

ViewGroup bottom = (ViewGroup)findViewById(R.id.bottom); 
ViewGroup layout = (ViewGroup)getLayoutInflater().inflate(R.layout.scene1_play,null); 
final Scene scene1 = new Scene(bottom,layout); 

После того, что мы можем найти любой вид из макета с использованием метода layout.findViewById, поэтому мы можем изменить фон, текст, вводимый коэффициент и так далее перед trasition. после того, как все изменения будут сделаны, мы должны начать переход с помощью

TransitionManager.go(scene1); 

 Смежные вопросы

  • Нет связанных вопросов^_^