栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Android侧栏,例如facebook或firefox

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android侧栏,例如facebook或firefox

我想出了一个解决方案…我不知道它是否完美,但效果很好。

因此,我要做的是将一个单独的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>

这是布局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);}

endOffset是目标运动。我在开始动画之前进行了设置,然后将要设置动画的视图(在这种情况下为id =
news_list_parent的视图)设置在构造函数上。

但是仅仅为了了解它是如何工作的,就制作一个按钮,它的监听者会做这样的事情:

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

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

if(viewBeneath.getVisibility() == View.VISIBLE) {    viewToSlide.slideTo(0, 0);    viewBeneath.setVisibility(View.Visible);}

将此读为伪代码=)这是我一开始所做的,但是代码丢失了:P



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/497395.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号