Android Facebook风格的幻灯片

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

任何人都知道如何实现?

在这里输入图像描述

单击页面左上angular的button,显示以下屏幕:

在这里输入图像描述

YouTubevideo

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

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

代码在这里,Launch中的最下面两个button(叫做HorzScrollWithListMenu和HorzScrollWithImageMenu)显示了我能想到的最好的菜单:

Android滑动菜单演示

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

模拟器截图(中间滚动)

从设备截图(全卷)。 请注意,我的图标不像Facebook菜单图标那样宽,所以菜单视图和“应用程序”视图不alignment。

设备屏幕截图(全卷)

我已经在这个库项目中实现了像Facebook一样的滑出式导航。

您可以轻松将其构build到您的应用程序,用户界面和导航中。 你只需要实现一个活动和一个片段,让图书馆知道它 – 图书馆将提供所有想要的animation和导航。

在回购里面你可以finddemo-project,以及如何使用lib来实现类似Facebook的导航。 这里是演示项目logging的简短video 。

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

目前来说,最大的问题是使其在应用程序中运行良好,支持纵向和横向模式。 如果您有任何意见,请通过github提供。

祝一切顺利,
亚历克斯

这是另一个 lib,似乎是我认为最好的。 我没有写

更新:

这段代码似乎对我来说效果最好,它移动了整个Actionbar,类似于G +应用程序。

Google如何设法做到这一点? 在Android应用程序中滑动ActionBar

我认为Facebook应用程序不是用本机代码编写的(我的意思是说,在Android中使用布局),但是他们已经使用了webview,并使用了一些JavaScript UI库,如sencha 。 使用sencha框架可以轻松实现。

在这里输入图像描述

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

关于这一点的好处是可以很容易地与ActionBarSherlock集成。

这是github项目链接

这是Google Play下载链接

我刚刚为自己的项目实施了类似的观点。 你可以在这里查看

这里是基于库的示例应用程序的屏幕我写道: 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" /> 

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

这个库的一些优点:

  • 通过触摸来滑动视图的能力
  • 在XML中调整动作栏的大小是很容易的
  • 支持从2.0开始的所有Android SDK版本

有一个限制:

  • 所有水平滚动视图将不会在这个视图的边界

最好的问候,史蒂文

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

v4支持库

导航抽屉devise模式

做了一个现有实现的综述,并把它变成一个图书馆项目加上示例应用程序。 还添加了XMLparsing以及自动检测可能存在的操作栏,所以它可以与本地以及支持操作栏(如ActionBarSherlock)一起使用。

这一个也滑动的行动吧!

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

Gingerbread上的SlideMenu带有ActionBar的ICS上的SlideMenu

这是简单而优雅的: https : //github.com/akotoe/android-slide-out-menu.git

快照:

在这里输入图像描述

我觉得图书馆没有提到:

jfeinstein10 / SlidingMenu

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

  • 与行动条ActionBarSherlock工作正常,这有助于向后兼容性
  • 支持右滑动 ,不仅通过button滑动!

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

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

 anim.setFillAfter(true); 

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

 app.clearAnimation(); 

希望这可以帮助 :)

我用AbsoluteLayout和一个简单的幻灯片控制器来实现这一点,它将视图移动到一个负的偏移来隐藏。

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

你好,这是最好的示例演示应用程序,它提供了像滑动菜单的facebook 在这里检查代码

在这里输入图像描述

在这里输入图像描述

作为我的Android公共库(ACL)的一部分,我实现了自己的SideBar。 主要优点:

  1. 侧栏可以设置为任意位置:左,上,下,右
  2. 主视图和滑动视图均可点击
  3. 侧栏可以部分显示
  4. SideBar的Stylable属性更容易改变它的风格
  5. 神器回购
  6. 大型图书馆的一部分

源代码: https : //github.com/serso/android-common/tree/master/views/src/main/java/org/solovyev/android/view/sidebar

用法: https : //github.com/service/android-common/blob/master/samples/res/layout/acl_view_layout.xml

最近我已经在我的滑动菜单实现版本上工作。 它使用stream行的J.Feinstein Android库SlidingMenu。

请检查GitHub上的源代码:

https://github.com/baruckis/Android-SlidingMenuImplementation

直接下载应用程序到设备尝试:

https://play.google.com/store/apps/details?id=com.baruckis.SlidingMenuImplementation

代码应该是不言自明的,因为评论。 我希望这会有所帮助! ;)

我find了一个最简单的方法和工作。 使用简单的导航抽屉,并调用drawer.setdrawerListner()并在下面的drawerSlide方法中使用mainView.setX()方法或复制我的代码。

xml文件

  <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#000000" > <RelativeLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ffffff"> <ImageView android:layout_width="40dp" android:layout_height="40dp" android:id="@+id/menu" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_marginTop="10dp" android:layout_marginLeft="10dp" android:src="@drawable/black_line" /> </RelativeLayout> <RelativeLayout android:id="@+id/left_drawer" android:layout_width="200dp" android:background="#181D21" android:layout_height="match_parent" android:layout_gravity="start" > </RelativeLayout> </android.support.v4.widget.DrawerLayout> 

java文件

  public class MainActivity extends AppCompatActivity { DrawerLayout drawerLayout; RelativeLayout mainView; ImageView menu; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); menu=(ImageView)findViewById(R.id.menu); drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mainView=(RelativeLayout)findViewById(R.id.content_frame); menu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { drawerLayout.openDrawer(Gravity.LEFT); } }); drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() { @Override public void onDrawerSlide(View drawerView, float slideOffset) { mainView.setX(slideOffset * 300); } @Override public void onDrawerOpened(View drawerView) { } @Override public void onDrawerClosed(View drawerView) { } @Override public void onDrawerStateChanged(int newState) { } }); } } 

在这里输入图像描述

谢谢

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

我假设他们有一个代表不可见的菜单的布局。 当点击菜单button时,它们将顶部的布局/视图设置为animation,以简化菜单布局的可视性。 我还没有想到这会在视图中引起任何types的Z-索引问题,或者它们如何控制这些问题。

这里是在官方的android文档中find的devise和开发指南,不需要添加非官方的外部库。 只有android支持库会做。 在这里find链接。

devise和开发 。

Facebook的Android应用程序可能与碎片build立。 菜单是一个片段,深入的Activity(Newsfeed / Events / Friends等)是另一个片段。 在手机上基本上是平板电脑的“主要和细节”布局。

有关详细信息,由于兼容性库以1.6开头,并且此应用也在Android 1.5的设备上运行,所以无法使用Fragments。

您可以这样做的方法是:创build一个“基本”活动BaseMenuActivity,其中将onItemClickListener的所有逻辑放置在菜单列表中,并定义2animation(“打开”和“closures”)。 在animation结束/开始时,您将显示/隐藏BaseMenuActivity的布局(让我们称之为menu_layout)。 这个活动的布局很简单,只有一个列表项目右边是一个透明部分。 这部分是可点击的,其宽度将与“移动button”的宽度相同。 这样,你就可以点击这个布局来开始animation,让content_layout向左滑动,并把整个屏幕。 对于每个选项(即菜单列表的项目),您创build一个扩展BaseMenuActivity的“ContentActivity”。 然后,当您点击列表中的一个项目时,您将开始您的ItemSelectedContentActivity,菜单可见(只要您的活动开始,您将立即closures该菜单)。 每个ContentActivity的布局都是FrameLayout,并包含和。 您只需要移动content_layout,并在需要时使menu_layout可见。

这是一个办法,我希望我已经清楚了。

过去几天我一直在玩这个游戏,最后我提出了一个非常简单的解决scheme,这个解决scheme在Honeycomb之前就可以运行。 我的解决scheme是为我要滑动的视图(为我的FrameLayout )设置animation效果,并侦听animation的结尾(在哪个点上偏移视图的左/右位置)。 我在这里粘贴了我的解决scheme: 如何为View的翻译添加animation

经过几个小时的search,我发现Paul Grime的解决scheme可能是最好的。 但它有太多的function。 所以初学者可能很难学习。 所以我想提供一个来自Paul的想法的实现,但它更简单,应该易于阅读。

通过使用没有XML的java代码来实现侧面菜单栏

我没有看到在上面的答案的任何地方提到的惊人的SimonVT / android-menudrawer。 所以这里有一个链接

https://github.com/SimonVT/android-menudrawer

它的超级简单易用,可以放在左侧,右侧,顶部或底部。 很好地logging了示例代码和Apache 2.0许可证。

Android添加了导航抽屉。 参考这个

链接

2012年6月, Google在Eclipse ADT插件中添加了“模板” ,并且有一个名为“主/细节stream程”的模板,它完全符合(基于fragmets)