新的Facebook应用程序和它的导航太酷了。我只是想看看如何在我的应用程序中模仿它。

有人知道怎么实现吗?

点击左上角按钮,页面滑动,显示如下画面:

YouTube视频


当前回答

随着android支持包修订版13(2013年5月),有了用于创建导航抽屉的DrawerLayout,可以从窗口边缘拉入。导航抽屉现在是一种设计模式。

V4支持库

导航抽屉设计模式

其他回答

我在过去的几天里一直在玩这个,我已经提出了一个解决方案,这是相当直接的,在pre-Honeycomb。我的解决方案是动画我想要滑动的视图(FrameLayout为我),并监听动画的结束(在这一点上抵消视图的左/右位置)。我在这里粘贴了我的解决方案:如何动画一个视图的翻译

我在这个库项目中实现了类似facebook的滑出导航。

你可以很容易地将它构建到你的应用程序、UI和导航中。你只需要实现一个活动和一个片段,让库知道它-库将提供所有想要的动画和导航。

在repo中,你可以找到demo-project,以及如何使用库来实现类似facebook的导航。这是演示项目的短视频。

此外,这个库应该兼容这个ActionBar模式,因为它是基于Activities事务和TranslateAnimations(而不是Fragments事务和自定义视图)。

目前,最大的问题是如何让它在支持纵向和横向模式的应用程序中很好地工作。如果你有任何反馈,请通过github提供。

愿一切都好! 亚历克斯

我在这里做一些大胆的猜测……

我假设它们有一个表示不可见的菜单的布局。当点击菜单按钮时,它们会在顶部移动布局/视图,并简单地启用菜单布局的可见性。我没有想过这会在视图中引起任何类型的z索引问题,或者他们如何控制它。

我认为facebook应用程序不是用原生代码(我指的是在Android中使用布局的原生代码)编写的,但他们使用了webview,并使用了一些javascript ui库,如sencha。使用sencha框架可以很容易地实现。

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

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

使用这个自定义视图作为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" />

如果你对ActionsContentView库的使用有任何疑问,我可以在项目Wiki上写一篇小文章。

这个库的一些优点:

通过触摸滑动视图的能力 在XML中很容易调整动作栏的大小 支持2.0及以上的所有Android SDK版本

但有一个限制:

所有水平滚动视图都不能在此视图的边界上工作

最好的问候, 史蒂文