я новичок в титане. Кто-нибудь знает, как нажимать одно окно на другое с эффектом контроллера push view (анимация, как в iphone). Поскольку в документации большинство из них представляют собой модальное представление. Есть ли push-представление, как на iphone? Спасибо.
Titanium Как переместить одно окно в другое с эффектом контроллера push view (анимация, как в iphone)
Ответы (1)
Мы использовали анимацию для скольжения окон на Android, имитируя функцию iOS. В итоге мы создали собственный оконный менеджер для управления различиями, но я извлек соответствующий код анимации.
Мы используем окна в группе навигации на iOS и представления в одном окне на Android.
У нас есть одно представление для клиентской области под названием vwBody
, ссылка на которое будет здесь. Это клиентская область под нашим составленным навигационным заголовком. Если вы не моделируете всю функцию группы навигации, это может быть просто главное окно.
В любом случае мы составляем входящее представление, показывающее только один пиксель в правой части клиентской области:
// vwBody is preexisting view defining the client area
var newview = Ti.UI.createView( {
name: name,
left: vwBody.size.width - 1,
top: 0,
width: vwBody.size.width,
height: vwBody.size.height } );
// compose the view here
vwBody.add(newView);
newView.addEventListener('postlayout', waitForWindowPaint);
Это позволяет правильно составить вид, поскольку Android/Ti фактически не начнет рисовать, пока вид не появится на экране. Мы ждем события postlayout, прежде чем продолжить анимацию. Как только композиция завершена, мы анимируем представление в:
function waitForWindowPaint()
{
newView.animate({ left: 0, duration:300 },
function(){ /* whatever to do post animation */ });
newView.removeEventListener("postlayout", waitForWindowPaint);
}
Теперь представление готово для взаимодействия с пользователем.
Когда мы закрываем представление, мы анимируем его обратно:
newView.animate({ left: curWin.size.width, opacity: 0, duration:300 },
function(){ vwBody.remove(newView); });
Мы подключаем кнопки android:back и header back, чтобы закрыть представление.