23

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

image 1

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

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

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

+0

你解决了这个问题吗? – Tushar 2015-03-09 06:03:31

+0

我真的很好奇,你现在是否已经明白...? – Glenn85 2015-09-22 14:20:04

+0

我问这个问题已经很长时间了。我不记得我是如何解决这个问题的,或者我是否解决了这个问题。 – Vaibhav 2015-09-30 05:02:56

回答

2

我想你想要做的就像是最新的Android Market UI?在哪里可以滑过显示不同内容的碎片,对吧?

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

它是由杰克沃顿这确实你问什么做的项目。你可以下载它的源代码来找到自己实现它的方法,或者你可以简单地使用它作为一个库(它也在网站上解释过)。

有关其他信息,我建议你考虑看看在Android的碎片和FragmentActivity,在这里不用链接到使用两个片段和FragmentActivity一个例子,但也有很多在互联网上: http://www.e-nature.ch/tech/?p=6

希望这帮助!

+0

感谢您的回答,虽然这不是我正在寻找的。 ViewpagerIndicator提供了不同的功能。 – Vaibhav 2012-02-21 07:00:47

1

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

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

在onTouch侦听器上添加红色布局。 做一些简单的x和y坐标计算,TouchEvent为您提供了编程设置的红色布局LayoutParams,例如宽度。

这是我头顶的想法,从来没有尝试过。

希望能帮助你。 干杯!

+1

感谢您的回答。我已经尝试过这种方法,并且运行良好。但它没有给出平滑的**拖拽方法,即当LayoutParams被重置时屏幕闪烁,并且布局被重新测量和重新绘制。 – Vaibhav 2012-02-21 06:59:28

4

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

2

我想你会用一个自定义viewgroup来扩展linearlayout。内部视图应该具有布局权重来定义它们的屏幕部分。

您必须重写自定义视图组onLayout和onMeassure,请记住,视图组会调用其子级的测量和布局以实现平滑重新缩放。

希望它有帮助。

相关问题