Android侧边栏,如facebook或firefox

bae*_*aen 17 java android android-view android-viewpager android-side-navigation

随着新的Facebook应用程序,它带有一个隐藏的侧边栏,我很乐意在我的应用程序中使用类似的东西.它看起来有点像firefox移动有的侧边栏...

除了重新实现ViewPager之外,您是否知道如何实现它?我已尝试使用Horizo​​ntalScrollView,但这也会导致重新实现它...

除了这两个之外,我没有看到任何其他方式...任何建议?

提前致谢

bae*_*aen 23

我提出了一个解决方案...我不知道它是否完美但它运作良好.

所以我所做的就是与两个叠在一起的布局的一个FrameLayout里,然后我只是动画的顶尖布局滑动到屏幕的右侧(只需要调用slideTo或scrollBy.基本上它就是这样!很简单有效!(代码虽然不是很漂亮:P)

编辑:

一些代码示例.

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FFF" >

        <include
        android:id="@+id/menu_layout"
            layout="@layout/menu_list"
            android:visibility="invisible"/>

        <include
            android:id="@+id/news_list_parent"
            layout="@layout/main_news_list" 
            />

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

这是布局xml,相当简单.包含的.xml是带有标题和列表视图的简单LinearLayouts.

"魔术"发生在动画中:

protected void applyTransformation(float interpolatedTime, Transformation t) {
    int newOffset;
    if(expanded) {
        newOffset = 0;
        newOffset = (int)(endOffset*(1-interpolatedTime));
    } else {
        newOffset = (int)(endOffset*(interpolatedTime));
    }
    view.scrollTo(-newOffset, 0);
}
Run Code Online (Sandbox Code Playgroud)

endOffset是目标移动.我在开始动画之前设置它,并且我想要动画的视图(在这种情况下是具有id = news_list_parent的视图)它在构造函数上设置.

但只是为了理解它是如何工作的,按钮和它的监听器会做这样的事情:

if(viewBeneath.getVisibility() == View.INVISIBLE) {
    viewBeneath.setVisibility(View.Visible);
    viewToSlide.slideTo(-(width-50), 0);
}
Run Code Online (Sandbox Code Playgroud)

最后覆盖后退按钮以执行与按钮相反的操作

if(viewBeneath.getVisibility() == View.VISIBLE) {
    viewToSlide.slideTo(0, 0);
    viewBeneath.setVisibility(View.Visible);
}
Run Code Online (Sandbox Code Playgroud)

读取这个伪代码=)这是我在开始时所做的,代码丢失:P


use*_*593 6

你可以尝试一下.好例子.检查滑块类..

https://github.com/gitgrimbo/android-sliding-menu-demo