怎么在Android应用中利用PopuWindow实现一个下拉列表功能(android,popuwindow,roi,移动开发)

时间:2024-05-04 20:08:26 作者 : 石家庄SEO 分类 : 移动开发
  • TAG :

    %E6%80%8E%E4%B9%88%E5%9C%A8Android%E5%BA%94%E7%94%A8%E4%B8%AD%E5%88%A9%E7%94%A8PopuWindow%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AA%E4%B8%8B%E6%8B%89%E5%88%97%E8%A1%A8%E5%8A%9F%E8%83%BD

基础依赖,由于下拉列表是用RecycleView实现,然后控件初始化用到ButterKnife,所以要在app的gradle中添加相关依赖:

第一步,不言而喻,肯定是上BasePopupWindow代码:

第二步,写一个OrderPop继承于BasePopupWindow:

OrderPop类中涉及到的内容挺多,以下将细细讲解。

1.--- 声明中涉及到RecycleView的一个适配器ManagerPopuAdapter,其代码如下:

2.--- ManagerPopuAdapter.java对应的layout----- item_popu_order_layout.xml代码:

3.--- item_popu_order_layout.xml中android:background="@drawable/manager_fragment_popu_bg"对应的drawable文件为:

manager_fragment_popu_pressed和manager_fragment_popu_normal对应的其实都是纯颜色xml文件。

manager_fragment_popu_pressed.xml代码如下:

manager_fragment_popu_normal.xml代码如下:

也许有的同学会问android:background="@drawable/manager_fragment_popu_bg文件中为什恶魔不直接用color属性设置背景切换,而要用color写个drawable供调用,其实我一开始也是这样弄的,无奈报错,具体原因不详,知道的同学可以回复下,此处不做重点。

4.--- item_popu_order_layout.xml中android:textColor="@drawable/text_color_bg"对应的drawable文件如下:

5.---讲讲OrderPop的构造函数

这里我其实是图方便,所以直接传了个固定宽度 ScreenUtil.dp2px(100,context) 进去了,实际开发中因为是点击某个控件然后在控件下面显示出来,那么应该传那个控件的宽度。

6.---OrderPop的layout布局pop_order.xml代码如下:

其中,android:scrollbars="vertical"是设置滚动条方向,android:scrollbarThumbVertical="@color/blue"是设置滚动条颜色,android:scrollbarStyle="outsideOverlay"设置滚动条样式

7.---讲讲OrderPop的显隐动画问题

在OrderPop类中的initData()方法中涉及到这样一行代码:

涉及到popuwindow的显隐动画问题,大家可以参考的前言中提到的popuwindow的基本使用文章,这里就不废话了。

第三步,OrderPop写好了,就该看看在MainActivity中是怎么调用的了,贴出MainActivity的代码:

MainActivity对应的布局activity_main.xml代码如下:

android:drawableRight="@drawable/manager_fragment_order_bg"中manager_fragment_order_bg.xml对应的代码如下:

ic_drop_up和ic_drop_down对应的分别是一张箭头向上的图片和一张箭头向下的图片,这里就不多说了。

android:textColor="@drawable/text_color_bg"的话是设置文字选中和未被选中时显示的颜色,在上面的第二步第四条已经讲过了,这里就不说了。

本文:怎么在Android应用中利用PopuWindow实现一个下拉列表功能的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Android中怎么实现图片压缩功能下一篇:

14 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18