【问题标题】:sliding one fragment over another in Android在Android中将一个片段滑过另一个片段
【发布时间】:2012-02-10 05:27:04
【问题描述】:

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

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

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

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

【问题讨论】:

  • 这个问题你解决了吗?
  • 我真的很好奇你现在是否已经弄清楚了...?
  • 很久没问这个问题了。我不记得我是如何解决的,或者我是否解决了。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我猜你想要做的是类似于最新的 Android Market UI 之类的东西?您可以在哪里滑动显示不同内容的片段,对吧?

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

    这是 Jake Wharton 完成的一个项目,可以满足您的要求。您可以下载它的源代码以找到自己实现它的方法,或者您可以简单地将其用作库(在网站上也有说明)。

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

    希望这会有所帮助!

    【讨论】:

    • 感谢您的回答,尽管这不是我想要的。 ViewpagerIndicator 提供了不同的功能。
    【解决方案3】:

    我想您会使用扩展线性布局的自定义视图组。内部视图应该有布局权重来定义它们在屏幕上的部分。

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

    希望对您有所帮助。

    【讨论】:

      【解决方案4】:

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

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

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

      这是我脑海中的想法,从未尝试过。

      希望对您有所帮助。 干杯!

      【讨论】:

      • 感谢您的回答。我已经尝试过这种方法,并且效果很好。但它并没有提供 平滑 的拖动方法,即屏幕会随着 LayoutParams 的重置而闪烁,并且会重新测量和重新绘制布局。
      猜你喜欢
      • 2014-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多