登录 立即注册
安币:

查看: 15005|回复: 8

仿大众点评、美团筛选框

[复制链接]

1

主题

25

帖子

4万

安币

码皇(巴士元老)

Rank: 8Rank: 8

发表于 2014-12-9 13:24:47 | 显示全部楼层 |阅读模式
最近公司再做新的项目其中有一个功能类似于大众点评或者美团的分类筛选,之前也在网上找过一些类似的东西,可是效果都跟我们想要的有一些差别,而且以前也弄过但是那时候很懒 都是直接一段代码写进去,最近发现复用性太差了,每次都要写好长一段代码,于是就有了现在的这个项目,封装成了一个控件,用的时候直接写进去就可以了,简单了很多,效果就跟图片的效果是一样的。
用的时候首先在布局文件中写入我们的控件
[XML] 查看源文件 复制代码
<pw.h57.popupbuttonlibrary.PopupButton
        android:id="@+id/btn"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="啦啦啦"
        android:textSize="20dp"
        popupbtn:normalBg="@drawable/tab_bkg_line"
        popupbtn:normalIcon="@drawable/arrow_down_shop"
        popupbtn:pressBg="@drawable/tab_bkg_selected"
        popupbtn:pressIcon="@drawable/arrow_up_shop"
        />


然后在写一个用于显示的布局
[XML] 查看源文件 复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ListView
        android:id="@+id/lv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:background="#fff"/>
</LinearLayout>


最后在activity文件中绑定控件并把view放入到控件中即可,如下
[AppleScript] 查看源文件 复制代码
PopupButton btn = (PopupButton) findViewById(R.id.btn);
       LayoutInflater inflater = LayoutInflater.from(this);

        View view = inflater.inflate(R.layout.popup,null);
        ListView lv = (ListView) view.findViewById(R.id.lv);
        final String[] arr = {"item01","item02","item03","item04","item05","item06","item07","item08","item09","item10"};
        final PopupAdapter adapter = new PopupAdapter(this,R.layout.popup_item,arr,R.drawable.normal,R.drawable.press);
        lv.setAdapter(adapter);
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                adapter.setPressPostion(position);
                adapter.notifyDataSetChanged();
                btn.setText(arr[position]);
                btn.hidePopup();
            }
        });
        btn.setPopupView(view);


这样就做到了图中左侧按钮的效果了,怎么样很简单吧,代码中的popupAdapter在源码中也都提供了,如果不想自定义直接用那个就可以了

最后欢迎反馈bug

所有的东西都在github中有提供,app文件夹就是demo,libaray文件夹就是控件,是基于as的项目,eclipse直接拷贝文件就可以直接用了


fdsa.gif

5

主题

1255

帖子

1万

安币

码皇(巴士元老)

贾吉科

Rank: 8Rank: 8

QQ达人

QQ
发表于 2014-12-9 16:11:35 | 显示全部楼层
{:6_150:}看起来效果不错,赞一个,谢谢分享
甄马龙,假Geek

0

主题

8

帖子

51

安币

程序猿

Rank: 2

QQ达人

发表于 2015-2-4 15:25:32 | 显示全部楼层
感谢楼主分享哈~正好要做的项目需要这个效果,学习下!

11

主题

240

帖子

800

安币

代码手工艺人

Rank: 4

发表于 2016-3-30 12:09:28 | 显示全部楼层
150:}看起来效果不错,赞一个,谢谢分享

0

主题

13

帖子

74

安币

程序猿

Rank: 2

发表于 2016-7-18 13:24:06 | 显示全部楼层
感谢分享,安卓巴士有你更精彩:)

0

主题

6

帖子

405

安币

攻城狮

Rank: 3Rank: 3

发表于 2017-3-1 10:00:15 | 显示全部楼层
感谢

0

主题

72

帖子

1

安币

初级码农

Rank: 1

发表于 2017-3-10 22:42:20 | 显示全部楼层
感谢分享,安卓巴士有你更精彩:)

0

主题

97

帖子

338

安币

攻城狮

Rank: 3Rank: 3

QQ达人

发表于 2017-11-20 22:02:15 | 显示全部楼层
正需要啊,感谢楼主无私分享!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长推荐

通过邮件订阅最新安卓weekly信息
上一条 /4 下一条

下载安卓巴士客户端

全国最大的安卓开发者社区
联系我们
关闭
合作电话:
15618560077
Email:
805941275@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 下载客户端|申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表