Android 仿京东淘宝筛选侧滑,两种实现方式

前两天看个朋友搞个用PopWindow搞了个筛选侧滑,看了下需求也不麻烦,刚好最近也有个商城项目前几天也学习了下Popwindow(以前侧滑都是用DrawerLayout实现的),就顺手写了下,分别用PopWindow和DrawerLayout实现了

先说说DrawerLayout吧,这个是谷歌在V4包下增加的一个控件,出来也挺久了,使用起来也比较简单。。。。


先看下效果图

Android 仿京东淘宝筛选侧滑,两种实现方式_第1张图片


使用起来也不麻烦,主要是布局文件

 

        

            

            

            

            

        
    

当然了,如果你以为这样就OK了,那肯定是显示不出来的,现在看看Java代码如何打开和关闭侧滑

   btn_button.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {
                    dlShow.openDrawer(Gravity.RIGHT);
                } else {
                    dlShow.closeDrawers();
                }
            }
        });

然后添加你要的数据


Android 仿京东淘宝筛选侧滑,两种实现方式_第2张图片

然后运行效果就出来了


Popwindow的实现和DrawerLayout差不多,代码也不复杂,首先继承Popwindow然后实例化这些老生常谈的东西这些就不说了,主要是设置popwindow这部分,全屏显示肯定是不合适的,这里我显示的300dp(转换了一下),注释写很详细

然后就是添加数据之类的了,和DrawerLayout一样,没什么特别的

Android 仿京东淘宝筛选侧滑,两种实现方式_第3张图片

然后是弹出

    btn_button.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {
                    screen.showAtLocation(MainActivity.this.findViewById(R.id.pop), Gravity.RIGHT, 0, 0);
                    setBackgroundAlpha(0.8f);
                } else {
                    screen.dismiss();
                    setBackgroundAlpha(1f);
                }
            }
        });

总结:

DrawerLayout和Popwindow各有优缺点,DrawerLayout优点可以放在同一布局,无需在重新新建布局而且使用方便,但是数据内容之类的只能在Activity中添加,这样会使Activity变的臃肿,方法充斥,时间长了容易混乱,Popwindow需要重新新建布局并设置popwindow但是可以方法,功能都可自定义,局限性较小。各有取舍吧,选择合适的就行


Github地址

CSDN地址




你可能感兴趣的:(Android,demo)