首先我初始化一个布尔标志=真;
然后我使用此按钮逻辑在视图之间切换.
OnClickListener changeViewListener = new OnClickListener(){ public void onClick(View v){ if(!flag){ listLayout.setVisibility(View.GONE); chartView.setVisibility(View.VISIBLE); changeView.setText("List"); flag = true; }else{ listLayout.setVisibility(View.VISIBLE); chartView.setVisibility(View.GONE); changeView.setText("Graph"); flag = false; } } };
这段代码效果很好,没有给我带来任何麻烦,我只是质疑这是否可以用更好的方式来完成,例如使用视图翻板?如果是这样,我如何实现视图翻转器代码在这两个视图之间切换?
或者我应该为每个视图使用片段?任何帮助将非常感激.
也许这可能对你有所帮助:Animate between Views
它给出了一个通用示例,可能是您可以调整它以获得您想要的翻转效果.
更新:
该教程还提供了各种动画文档的链接.从那以后,我认为你可以使用Rotate Animation创建翻转效果.您可以给出旋转角度和旋转视图的枢轴.
这个概念是您将一个视图旋转出来并在另一个视图中旋转.
更新:
View Flipper是视图之间动画的实现.我发布的上述方法是通用的,您可以玩弄值并创建动画,让您拥有更精细的控制.您可以在其他人可能从未尝试过的视图之间创建过渡.
View Flipper的步骤:
1.在View Flipper中,在Layout XML文件中定义Flipper元素.对于这个鳍状肢元素,您可以添加两个子元素,它们可以只是两个视图或两个布局或一个视图和一个布局. View Flipper在您定义的这两个视图之间翻转.
2.一旦用XML创建了这么多,就可以在/ res / anim下为以下类型的进入和退出转换创建四个动画规则:
一个.留在
湾离开了
C.就在
d.出来
3.在1和2之后,您现在在代码中添加Touch或Gesture侦听器,以侦听Touch和Listen事件.在这些侦听器中,然后使用vf.setInAnimation()或vf.setOutAnimation()启动动画,其中vf是您的ViewFlipper实例.
你可以在这里找到完整的代码:
1. View Flipper Tutorial 1
2. View Flipper Tutorial 2
更新:
必须进行一些调整才能使View Flipper与ListView一起使用.我发现了另一个问题,即通过次要编辑解决了同样的问题.看看here.