我制作了一个示例应用程序来在 viewflipper 中翻阅不同的布局。
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
}
当在屏幕上拖动时(就像主屏幕一样),上面的伪代码可以很好地在 viewflipper 内移动线性布局。
问题是当我执行 nextScreen.setVisibility(View.VISIBLE) 时。当下一个屏幕设置为可见时,它会在屏幕上闪烁,然后再移动到适当的位置。(我猜它在 0 位置可见。)
有没有办法加载下一个屏幕而不让它在屏幕上闪烁?我希望它在屏幕外加载(可见),这样它就不会闪烁。
非常感谢您的时间和帮助!