Android Facebook风格幻灯片

Har*_*M V 281 android facebook android-side-navigation

新的Facebook应用程序及其导航非常酷.我只是想看看如何在我的应用程序中模拟它.

任何人都知道如何实现它?

在此输入图像描述

单击左上角的按钮,页面滑动显示以下屏幕:

在此输入图像描述

YouTube视频

Pau*_*ime 176

我自己玩过这个游戏,我能找到的最好方法是使用FrameLayout并在菜单上放置一个自定义Horizo​​ntalScrollView(HSV).HSV内部是您的应用程序视图,有一个透明视图作为第一个子视图.这意味着,当HSV具有零滚动偏移时,菜单将显示(并且仍然可以令人惊讶地点击).

当应用程序启动时,我们将HSV滚动到第一个可见应用程序View的偏移量,当我们想要显示菜单时,我们向后滚动以通过透明视图显示菜单.

代码在这里,Launch活动中的底部两个按钮(称为HorzScrollWithListMenu和HorzScrollWithImageMenu)显示了我能想到的最佳菜单:

Android滑动菜单演示

模拟器(中间滚动)的屏幕截图:

模拟器的屏幕截图(中间滚动)

设备截图(全滚动).请注意,我的图标不像Facebook菜单图标那么宽,因此菜单视图和"应用"视图未对齐.

设备截图(全卷)

  • 非常感谢@PaulGrime ...这是一个非常简单的例子,最令人敬畏的是这个演示简单易懂,易于定制,没有库项目可供使用. (2认同)

Ale*_*sky 37

我在这个图书馆项目中实现了类似Facebook的滑动导航.

您可以轻松地将其构建到您的应用程序,UI和导航中.您只需要实现一个Activity和一个Fragment,让库知道它 - 库将提供所有想要的动画和导航.

在repo中你可以找到demo-project,以及如何使用lib来实现类似facebook的导航.这是一个简短的视频,包含演示项目的记录.

此lib也应与此ActionBar模式兼容,因为它基于Activities事务和TranslateAnimations(不是Fragments事务和自定义视图).

现在,最大的问题是使它适用于支持纵向和横向模式的应用程序.如果您有任何反馈意见,请通过github提供.

一切顺利,
Alex

  • 嗨,我刚刚发现每次打开侧边栏时你的方法都会创建一个大的截图位图.它会增加堆大小并可能导致内存不足错误. (4认同)
  • 谢谢亲爱的科罗维扬斯克,非常好.但在新操作系统中不推荐使用绝对布局.你可以重新编码吗? (3认同)

Pat*_*ick 24

这是另一个 lib,在我看来似乎是最好的.我没写它..

更新:

这段代码似乎对我来说效果最好,它将整个Actionbar移动到与G + app类似的位置.

谷歌是如何做到这一点的?在Android应用程序中滑动ActionBar

  • 我写了这个图书馆,很高兴你喜欢它.它现在非常基本,但我会在未来几周内改进它.不仅欢迎其他人对其进行更改. (7认同)

San*_*mar 22

我认为Facebook应用程序不是用本机代码编写的(通过本机代码,我的意思是,使用Android中的布局),但他们使用了webview,并使用了一些javascript ui库,如sencha.使用sencha框架可以轻松实现.

在此输入图像描述

  • +1 UI可以在没有App Update的情况下进行更改,因此它绝对是一个Web应用程序,Android应用程序基本上是一个Web浏览器. (16认同)
  • 我不确定是否一定如此.UI的框架可以是本机的(例如实际菜单View和其他本机视图),以及动态加载的视图的内容.如果应用程序的框架发生更改,则可能需要更新. (7认同)
  • 我认为facebook应用程序不是webapp.太流利,快速.我知道网络/混合应用程序看起来很"像本机",但与本机相比仍然有点滞后.不仅骨架 - 列表,地图等看起来和感觉都是原生的.至少与当前的技术状态有关. (2认同)

dwb*_*ito 20

这是另一个(非常好的)开源库!

关于这个的一个很好的特性是它很容易与ActionBarSherlock集成.

这是github项目链接

这是Google Play下载链接

  • 我认为这是最好的 (2认同)

rud*_*ude 17

我刚刚为自己的项目实现了类似的视图.你可以在这里查看

这是基于我写的库的示例应用程序的屏幕: ActionsContentView示例

可以很容易地将此​​自定义视图用作XML布局的元素.这是一个例子:

    <shared.ui.actionscontentview.ActionsContentView
      android:id="@+id/content"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:actions_layout="@layout/actions"
      app:content_layout="@layout/content" />
Run Code Online (Sandbox Code Playgroud)

我对使用ActionsContentView库有任何疑问我可以在项目Wiki上写一篇小文章.

这个库的一些优点:

  • 能够通过触摸滑动视图
  • 可以很容易地调整XML中操作栏的大小
  • 支持从2.0及更高版本开始的所有Android SDK版本

有一个限制:

  • 所有水平滚动视图都不适用于此视图的边界

最诚挚的问候,史蒂文


Wub*_* Li 16

使用Android支持包修订版13(2013年5月),可以使用DrawerLayout创建可以从窗口边缘拉入的导航抽屉.而且,导航抽屉现在是一种设计模式.

v4支持库

导航抽屉设计模式

  • 是的,支持的最低API级别为4. (2认同)
  • 这需要进一步在顶部.其他答案中有太多无关的第三方库. (2认同)

bk1*_*138 15

现有实现进行了综合,并将其转换为库项目和示例应用程序.还添加了XML解析以及可能存在的操作栏的自动检测,因此它可以与本机以及支持操作栏(如ActionBarSherlock)一起使用.

这个也滑动了动作栏!

整个事情是一个图书馆项目和一个示例应用程序,并在Android的滑动菜单,如谷歌和Facebook应用程序描述.感谢scirocco最初的想法和代码!

SlideMenu在姜饼上 带有ActionBar的ICS上的SlideMenu


mad*_*mad 10

我认为图书馆没有提到:

jfeinstein10/SlidingMenu

github url:https://github.com/jfeinstein10/SlidingMenu

  • 动作栏ActionBarSherlock工作正常,有助于向后兼容!
  • 支持右侧滑动,不仅可以通过按钮滑动!


小智 8

无法评论@Paul Grime给出的答案,无论如何我已经在他的github项目中提交了针对闪烁问题的修复....

我会在这里发布修复,也许有人需要它.您只需添加两行代码即可.anim.setAnimationListener调用下面的第一个:

anim.setFillAfter(true);
Run Code Online (Sandbox Code Playgroud)

app.layout()之后的第二个调用:

app.clearAnimation();
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 :)


小智 6

我已经使用AbsoluteLayout和一个简单的滑动控制器实现了这一点,该控制器将视图移动到负偏移以隐藏.

如果有人有兴趣,我可以清理代码/布局并发布.我知道AbsoluteLayout已被弃用,但这是一个非常直接的实现.左视图/右视图,当"滑动打开"时,只需将左视图从-X偏移移动到设备的宽度 - 无论您想要显示右视图


jli*_*aum 2

我将在这里做出一些大胆的猜测......

我假设他们有一个代表不可见菜单的布局。当点击菜单按钮时,它们会对顶部的布局/视图进行动画处理以移开,并简单地启用菜单布局的可见性。我没有考虑过这会导致视图中出现任何类型的 z-index 问题,或者他们如何控制它。