1、概述
关于自定义控件侧滑已经写了两篇了~~今天决定把之前的单向改成双向,当然了,单纯的改动之前的代码也没意思,今天不仅会把之前的单向改为双向,还会多添加一种侧滑效果,给大家带来若干种形态各异的双向侧滑菜单,不过请放心,代码会很简单~~然后根据这若干种,只要你喜欢,相信你可以打造任何绚(bian)丽(tai)效果的双向侧滑菜单~~
首先回顾一下,之前写过的各种侧滑菜单,为了不占据篇幅,就不贴图片了:
1、最普通的侧滑效果,请参考:Android 自定义控件打造史上最简单的侧滑菜单
2、仿QQ5.0侧滑效果,请参考:Android 高仿 QQ5.0 侧滑菜单效果 自定义控件来袭
3、菜单在内容之后的侧滑效果,请参考:Android 高仿 QQ5.0 侧滑菜单效果 自定义控件来袭
2、目标效果
1、最普通的双向侧滑
是不是很模糊,嗯,没办法,电脑显卡弱。。。。
2、抽屉式双向侧滑
3、菜单在内容之下的双向侧滑
凑合看下,文章最后会提供源码下载,大家可以安装体验一下~
所有的代码的内容区域都是一个ListView,两侧菜单都包含按钮,基本的冲突都检测过~~~当然如果有bug在所难免,请直接留言;如果你解决了某些未知bug,希望你也可以留言,或许可以帮助到其他人~~
下面就开始我们的代码了。
3、代码是最好的老师
1、布局文件
既然是双向菜单,那么我们的布局文件是这样的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<com.zhy.view.BinarySlidingMenu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:zhy="http://schemas.android.com/apk/res/com.zhy.zhy_bin_slidingmenu02" android:id="@+id/id_menu" android:layout_width="wrap_content" android:layout_height="fill_parent" android:scrollbars="none" zhy:rightPadding="100dp" > <LinearLayout android:layout_width="wrap_content" android:layout_height="fill_parent" android:orientation="horizontal" > <include layout="@layout/layout_menu" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/eee" android:gravity="center" android:orientation="horizontal" > <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" > </ListView> </LinearLayout> <include layout="@layout/layout_menu2" /> </LinearLayout> </com.zhy.view.BinarySlidingMenu> |
最外层是我们的自定义的BinarySlidingMenu,内部一个水平方向的LinearLayout,然后是左边的菜单,内容区域,右边的菜单布局~~
关键就是我们的BinarySlidingMenu
2、BinarySlidingMenu的构造方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
/** * 屏幕宽度 */ private int mScreenWidth; /** * dp 菜单距离屏幕的右边距 */ private int mMenuRightPadding; public BinarySlidingMenu(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mScreenWidth = ScreenUtils.getScreenWidth(context); TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.BinarySlidingMenu, defStyle, 0); int n = a.getIndexCount(); for (int i = 0; i < n; i++) { int attr = a.getIndex(i); switch (attr) { case R.styleable.BinarySlidingMenu_rightPaddingn class="crayon-h"> case R.styleable.BinarySlidingMenu_rightPadding干种,只要你喜欢,相信你可以打造任何绚(bian)丽(tai)效果的双向侧滑菜单~~
首先回顾一下,之前写过的各种侧滑菜单,为了不占据篇幅,就不贴图片了: 1、最普通的侧滑效果,请参考:Android 自定义控件打造史上最简单的侧滑菜单 2、仿QQ5.0侧滑效果,请参考:Android 高仿 QQ5.0 侧滑菜单效果 自定义控件来袭 3、菜单在内容之后的侧滑效果,请参考:Android 高仿 QQ5.0 侧滑菜单效果 自定义控件来袭 2、目标效果1、最普通的双向侧滑是不是很模糊,嗯,没办法,电脑显卡弱。。。。 2、抽屉式双向侧滑3、菜单在内容之下的双向侧滑凑合看下,文章最后会提供源码下载,大家可以安装体验一下~ 所有的代码的内容区域都是一个ListView,两侧菜单都包含按钮,基本的冲突都检测过~~~当然如果有bug在所难免,请直接留言;如果你解决了某些未知bug,希望你也可以留言,或许可以帮助到其他人~~ 下面就开始我们的代码了。 3、代码是最好的老师1、布局文件既然是双向菜单,那么我们的布局文件是这样的:
最外层是我们的自定义的BinarySlidingMenu,内部一个水平方向的LinearLayout,然后是左边的菜单,内容区域,右边的菜单布局~~ 关键就是我们的BinarySlidingMenu 2、BinarySlidingMenu的构造方法
|