在Android中将一个片段滑过另一个片段

时间:2012-02-10 05:27:05

标签: android android-layout android-fragments android-animation android-view

在android中,我们可以将片段滑过另一个吗?例如,在下图中:

image 1

有两个片段。一个是红色,另一个是蓝色。如果用户将手指按在黑色箭头上并将其向右拖动,则红色片段也随之拖动,从而覆盖蓝色片段。最后,红色片段覆盖整个蓝色片段。此外,如果用户在红色片段被拖动到不到一半的蓝色片段之前抬起他的手指,则红色片段应该回到其原始位置(因此不覆盖蓝色片段)。然而,如果使用者不抬起他的手指(即拖动箭头)直到红色片段覆盖超过一半的蓝色片段或整个蓝色片段,那么红色片段应该覆盖整个蓝色片段。

此外,如果红色片段上有任何视图(例如,ButtonsEditTexts等),那么它们也会相应地重新调整大小。

有没有办法做到这一点?如果是,那怎么办?

4 个答案:

答案 0 :(得分:4)

您是否看过使用或扩展SlidingDrawer?您可以将红色片段作为抽屉的内容,将黑色箭头作为句柄。

答案 1 :(得分:2)

我猜你想要做的事情就像是最新的Android Market用户界面?你可以在哪里滑过显示不同内容的片段,对吗?

如果就是这样,那么我建议你看看这个网站: http://viewpagerindicator.com/

这是杰克沃顿完成的一个项目,它可以满足您的需求。您可以下载其源代码以找到自己实现它的方法,或者您可以简单地将其用作库(它在网站中也有解释)。

有关其他信息,我建议您查看Android中的Fragments和FragmentActivity,这里有一个链接到一个使用Fragments和FragmentActivity的示例,但互联网上有很多: http://www.e-nature.ch/tech/?p=6

希望这有帮助!

答案 2 :(得分:2)

我想你会使用扩展linearlayout的自定义视图组。内部视图应具有布局权重以定义其屏幕部分。

您必须覆盖自定义视图组onLayout和onMeassure,请记住,视图组会调用其子项的测量和布局,以便顺利重新缩放。

希望它有所帮助。

答案 3 :(得分:1)

我想不出更简单的方法......所以试着这样做:

尝试使用FrameLayout。 添加一个蓝色LinearLayout,然后添加一个红色LinearLayout,例如。 然后红色布局将是蓝色的。

在红色布局上附加onTouch侦听器。 对TouchEvent提供的x和y坐标进行一些简单的计算,以编程方式设置红色布局的LayoutParams,例如宽度。

这个想法来自我的头脑,从未尝试过。

希望能帮到你。 干杯!