(我把源码上传网上,大家可以下载运行,如有不足请留言.说明一点:listview上下左右滑动冲突没有解决,
不过我运行看过很多应用,要么listview不能左右滑动,要么能左右滑动但是listview不到一屏)
现在我就为上面的疑问给大家分享一下我的做法,完善了之前的小bug,界面完全是以前的。不过代码改动稍微过大。
一,将之前的手势监听改成了onTouch方法监听(算法略复杂,优点是监听更准确,可操控性更强)
二,去除了回调接口(减少不必要的回调)
三,修改测量view的方法。
下面这个方法是比较主要的一个方法,即将viewgroup里面的子view按照要求布局(很重要,这将被视为所有view的初始状态)
protected void onLayout(boolean changed, int l, int t, int r, int b) {
if (changed) {
viewMenu = getChildAt(0);// 获取滑动菜单的view
viewContent = getChildAt(1);// 获得主页view
measureView(viewContent);
measureView(viewMenu);//对传进来的子view进行测量,这个很重要 在源码里面会有相应代码
width = getWidth();//获得控件所拥有的宽度
height = getHeight();//获得控件所拥有的高度
// 四个参数分别为:左边的位置,上边的位置,右边的位置,底边的位置
viewMenu.layout(-viewMenu.getMeasuredWidth(), 0, 0, getHeight());
viewContent.layout(0, 0, getWidth(), getHeight());
}
}
作者:吴旭晓 | 来源:个人博客 | 点击量:1792 | 发布时间:2013-06-27
最新留言 |
返回上一页 |
返回首页