Я создал пример приложения для просмотра различных макетов в видоискателе.
XML в основном (псевдокод)
<ViewFlipper>
<LinearLayout><TextView text:"this is the first page" /></LinearLayout>
<LinearLayout><TextView text:"this is the second page" /></LinearLayout>
<LinearLayout><TextView text:"this is the third page" /></LinearLayout>
</ViewFlipper>
А в коде Java
public boolean onTouchEvent(MotionEvent event)
case MotionEvent.ACTION_DOWN {
oldTouchValue = event.getX()
} case MotionEvent.ACTION_UP {
//depending on Direction, do viewFlipper.showPrevious or viewFlipper.showNext
//after setting appropriate animations with appropriate start/end locations
} case MotionEvent.ACTION_MOVE {
//Depending on the direction
nextScreen.setVisibility(View.Visible)
nextScreen.layout(l, t, r, b) // l computed appropriately
CurrentScreen.layout(l2, t2, r2, b2) // l2 computed appropriately
}
Вышеупомянутый псевдокод хорошо работает, перемещая линейные макеты внутри видоискателя при перетаскивании на экране (как на домашнем экране).
Проблема заключается в том, что я делаю nextScreen.setVisibility (View.VISIBLE).Когда следующий экран становится видимым, он мигает на экране, прежде чем перейти в соответствующее положение.(Полагаю, он отображается в 0 месте.)
Есть ли способ загрузить следующий экран, не заставляя его мерцать на экране?Я хочу, чтобы он был загружен (сделан видимым) с экрана, чтобы он не мерцал.
Большое спасибо за потраченное время и помощь!