栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 移动开发 > Android

android用PopWindow做下拉框实例代码

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

android用PopWindow做下拉框实例代码

最近在做下拉框,本来想用spinner,可是spinner达不到项目要求,跟同学同事问了一圈,都在用popwindow,网上看了一下,popwindow挺简单的,可定制性挺强的,符合我的要求,所以,借鉴网上看的代码,自己撸了一遍。写篇博客以防忘记。

 首先,先写个自定义布局,代码如下



 

  

   

   
  

  

  

   

   
  
 


 第二步,在代码中定义popwindow样式,绑定点击事件,代码如下:

// // 获取自定义布局文件pop.xml的视图
  View customView = getActivity().getLayoutInflater().inflate(R.layout.lay_circle_pop_drop_down_qr_code,
    null, false);
  // 创建PopupWindow实例,200,150分别是宽度和高度

  mQrCodePopWindow = new PopupWindow(customView, CommonUtil.dipToPx(getContext(),110), ViewGroup.LayoutParams.WRAP_CONTENT,true);
  // 设置动画效果 [R.style.AnimationFade 是自己事先定义好的]
//  popupwindow.setAnimationStyle(R.style.AnimationFade);
//  popupwindow.setTouchable(true);
//  popupwindow.setOutsideTouchable(true);
  mQrCodePopWindow.setBackgroundDrawable(new BitmapDrawable());
  customView.findViewById(R.id.lin_scan_qr_code).setonClickListener(v -> {
   ToastUtil.show(getContext(),"扫一扫");
   dismissQrCodePopWindow();
  });
  customView.findViewById(R.id.lin_my_qr_code).setonClickListener(v -> ToastUtil.show(getContext(),"二维码"));

 注意,代码中的true为setFoucusable,如要点击空白处隐藏popwindow的话,setFocusable(true)和setBackground()两者必不可少(亲测)。

最后,为空间添加点击事件,控制下拉框的显示隐藏,代码如下:

@onClick(R.id.lin_top_right)
 public void onClick(View v) {
  if (mQrCodePopWindow != null&& mQrCodePopWindow.isShowing()) {
   mQrCodePopWindow.dismiss();
  } else {
   initQrCodePopWindow();
   mQrCodePopWindow.showAsDropDown(v);
  }
 }

(由于暂时没有发现好的动画效果,所以没有添加动画,如果大家有发现好的动画,还请告知一二,在此谢过)

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/160177.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号