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

有人知道怎么实现吗?

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

YouTube视频


当前回答

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

我会在这里发布修正,也许有人需要它。您只需要添加两行代码。动画下面的第一个。setAnimationListener电话:

anim.setFillAfter(true);

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

app.clearAnimation();

希望这对你有所帮助。

其他回答

我想图书馆没有提到:

jfeinstein10 / SlidingMenu

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

与动作栏ActionBarSherlock一起工作很好,这有助于向后兼容! 支持右滑,而不仅仅是通过按钮滑!

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

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

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

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

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

愿一切都好! 亚历克斯

对于信息,因为兼容性库开始1.6和这个facebook应用程序也运行在设备与Android 1.5,它不能用碎片。

The way you could do it, is : Create a "base" activity BaseMenuActivity where you put all the logic for the onItemClickListener for your menu list and defines the 2 animation ("open" and "close"). At the end/beginning of the animations, you show/hide the layout of the BaseMenuActivity (lets call it menu_layout). The layout for this activity is simple, its only a list with items + a transparent part at the right of your list. This part will be clickable and its width will be the same width as your "move button". With that, you'll be able to click on this layout to start the animation to let the content_layout slide to the left and take the whole screen. For each option (i.e. item of the menu list), you create a "ContentActivity" which extends the BaseMenuActivity. Then when you click on an item of the list, you start your ItemSelectedContentActivity with the menu visible (which you'll close as soon as your activity starts). The layouts for each ContentActivity are FrameLayout and includes the and . You just need to move the content_layout and make the menu_layout visible when you want.

这是一种方法,我希望我讲得够清楚了。

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

我会在这里发布修正,也许有人需要它。您只需要添加两行代码。动画下面的第一个。setAnimationListener电话:

anim.setFillAfter(true);

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

app.clearAnimation();

希望这对你有所帮助。

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