新的Facebook应用程序和它的导航太酷了。我只是想看看如何在我的应用程序中模仿它。
有人知道怎么实现吗?
点击左上角按钮,页面滑动,显示如下画面:
YouTube视频
新的Facebook应用程序和它的导航太酷了。我只是想看看如何在我的应用程序中模仿它。
有人知道怎么实现吗?
点击左上角按钮,页面滑动,显示如下画面:
YouTube视频
当前回答
我自己也玩过这个,我能找到的最好的方法是使用FrameLayout,并在菜单顶部放置一个自定义的HorizontalScrollView (HSV)。在HSV内部是应用程序视图,但是有一个透明的视图作为第一个子视图。这意味着,当HSV有零滚动偏移时,菜单将显示(并且仍然是可点击的)。
当应用程序启动时,我们将HSV滚动到第一个可见应用程序视图的偏移量,当我们想要显示菜单时,我们向后滚动以通过透明视图显示菜单。
代码在这里,底部的两个按钮(称为HorzScrollWithListMenu和HorzScrollWithImageMenu)在启动活动中显示了我能想出的最好的菜单:
Android滑动菜单演示
模拟器截图(中间滚动):
来自设备的截图(全滚动)。注意,我的图标没有Facebook菜单图标宽,所以菜单视图和“应用程序”视图并不对齐。
其他回答
我自己也玩过这个,我能找到的最好的方法是使用FrameLayout,并在菜单顶部放置一个自定义的HorizontalScrollView (HSV)。在HSV内部是应用程序视图,但是有一个透明的视图作为第一个子视图。这意味着,当HSV有零滚动偏移时,菜单将显示(并且仍然是可点击的)。
当应用程序启动时,我们将HSV滚动到第一个可见应用程序视图的偏移量,当我们想要显示菜单时,我们向后滚动以通过透明视图显示菜单。
代码在这里,底部的两个按钮(称为HorzScrollWithListMenu和HorzScrollWithImageMenu)在启动活动中显示了我能想出的最好的菜单:
Android滑动菜单演示
模拟器截图(中间滚动):
来自设备的截图(全滚动)。注意,我的图标没有Facebook菜单图标宽,所以菜单视图和“应用程序”视图并不对齐。
不能评论@Paul Grime给出的答案,无论如何,我已经在他的github项目上提交了闪烁问题的修复....
我会在这里发布修正,也许有人需要它。您只需要添加两行代码。动画下面的第一个。setAnimationListener电话:
anim.setFillAfter(true);
在app.layout()调用之后的第二个函数:
app.clearAnimation();
希望这对你有所帮助。
做了一个现有的实现,并把它变成一个库项目加上示例应用程序。还添加了XML解析以及自动检测可能出现的动作栏,所以它与本机以及支持动作栏,如ActionBarSherlock。
这个也会滑动操作栏!
整个事情是一个图书馆项目与一个示例应用程序,并在一个滑动菜单为Android像谷歌和facebook应用程序的描述。感谢scirocco最初的想法和代码!
我刚刚为我自己的项目实现了类似的视图。你可以在这里查看
下面是基于我写的库的示例应用程序的屏幕:
使用这个自定义视图作为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版本
但有一个限制:
所有水平滚动视图都不能在此视图的边界上工作
最好的问候, 史蒂文
我认为facebook应用程序不是用原生代码(我指的是在Android中使用布局的原生代码)编写的,但他们使用了webview,并使用了一些javascript ui库,如sencha。使用sencha框架可以很容易地实现。