安卓电子书顶部与底部菜单实现

本人因做一个项目,需要用到电子书中顶部与底部菜单,百度谷歌了很久,之前也有人遇到这此类问题,但是只得到一个答案,就是使用一个PopupWindow,实现.

说一下在实现这个功能的过程中遇到的问题,

1:最开始考虑在布局文件中写死两个菜单,利用布局对象的visible和gone属性加上animation动画来实现,后来否定了,因为不知道为什么 gone会失效,挡住前面一块,使底部的控件点击事件不能响应,

2:一直使用控件自身属性来实现设置动画数值,发现第一次显示一直不加载动画,后来发现,是第一次因为控件本身属性还未初始化.以前知道控件的这个问题,但是忽略了.后来才想起来问题所在.

/** * onCreate之后获得控件宽高 */ private int getViewHeight(View view) { view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec .makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)); return view.getMeasuredHeight(); }
3:后来使用两个PopupWindow来实现,发现PopupWindow中的很多问题,比如当前PopupWindow获得焦点后,当前窗体的Menu键是无法响应的.必须设置PopupWindow中的控件的onKeyListener()来解决 .而两个PoPupWindow如何同时弹出,又消失呢?这个貌似很难做到,因为太麻烦.

4:如何使用一个PopupWindow来同时弹出一个顶部菜单与底部菜单?在我们看来PopupWindow只是一个小窗体.而这个似乎中间还有空白的.


解决方案:这里只提供思路.具体代码.己在csdn上付分下载...同时也希望 大家多多动手,最近面试很多人,发现,工作了好几年,很多东西只会用,或者copy,

首先定义一个布局对象


   可能看到这个,大家心里就有点思路了,其实就是这样子的,将整个布局addView进PopupWindow内,然后 通过View.inflate将title与bottom的view对象获取.

再设置其显示与隐藏的动画就可以了.

另外,中间的空白区域有一个很大的好处,就是可以设置其点击事件,然后隐藏该PopupWindow对象.这给人的感觉就像是点击了外面的控件,就自动隐藏了顶部与底部的控件一样.

如果大家想要下载:http://download.csdn.net/detail/csmco/6423465   我设的分比较高,因


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值