bae*_*aen 17 java android android-view android-viewpager android-side-navigation
随着新的Facebook应用程序,它带有一个隐藏的侧边栏,我很乐意在我的应用程序中使用类似的东西.它看起来有点像firefox移动有的侧边栏...
除了重新实现ViewPager之外,您是否知道如何实现它?我已尝试使用HorizontalScrollView,但这也会导致重新实现它...
除了这两个之外,我没有看到任何其他方式...任何建议?
提前致谢
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