今天,简单讲讲android里如何实现向QQ一样的登录后记住用户名的下拉框。

这个其实也很简单,网上搜索了一下,很多相关的资料,基本都是PopupWindow+ListView的方式,实现起来比较灵活。我也参考了一下,不过把他封装成了自定义的控件,这里记录一下。

效果:

这里只有使用别人地效果图,因为最近我上传的截图发现在博客上无法显示。其实我对界面做了优化,因为这个别人的界面是没有办法在市场上的app使用的。

这里只列举核心的代码:

//主界面Activity代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);

   inputEditText = (EditText) findViewById(R.id.input);
   downArroImageView = (ImageView) findViewById(R.id.down_arrow);
   ll_down_arrow= (LinearLayout) findViewById(R.id.ll_down_arrow);

   msgList = new ArrayList<String>();
   // 对msgList进行赋值
   for (int i = 0; i < 10; i++) {
msgList.add("11111111"+i);
   }
//初始化PopupWindow
   initPopupWindow();

}

这里首先初始化ArrayList,为listView填充数据,然后调用initPopupWindow初始化自定义的控件,具体代码

private void initPopupWindow() {
ll_down_arrow.setOnClickListener(new OnClickListener() {
@Override
      public void onClick(View arg0) {
loginSpinerPopWindow.setWidth(inputEditText.getWidth());
         loginSpinerPopWindow.showAsDropDown(inputEditText);
         downArroImageView.setBackgroundResource(R.drawable.icon_up);
      }
});

   loginSpinerPopWindow = new LoginSpinerPopWindow<String>(this, msgList, itemClickListene);
   loginSpinerPopWindow.setOnDismissListener(dismissListener);

}

这里初始化自定义控件LoginSpinerPopWindow时,传入了connext,ArrayList数据,与itemClickListene记录点击事件。然后设置了点击后的消失的事件dismissListener。

itemClickListene的具体代码:

/**
 * popupwindow显示的ListView的item点击事件
 */
private AdapterView.OnItemClickListener itemClickListene = new AdapterView.OnItemClickListener() {
@Override
   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
loginSpinerPopWindow.dismiss();
      // 设置输入框
      inputEditText.setText(msgList.get(position));
   }
};

这里主要是点击下拉框时,输入框显示点击的内容。

dismissListener的具体代码:

/**
 * 监听popupwindow取消
 */
private PopupWindow.OnDismissListener dismissListener = new PopupWindow.OnDismissListener() {
@Override
   public void onDismiss() {
downArroImageView.setBackgroundResource(R.drawable.arraw_down);
   }
};

这里主要是下拉框消失时,输入框右边的按钮复原的功能。

至于LoginSpinerPopWindow,它是继承PopupWindow,里面有封装了listView的自定义控件。

源码下载:http://download.csdn.net/download/bzlj2912009596/10250190

android 实现仿QQ登录可编辑下拉菜单 就讲完了。

就这么简单。



android 实现仿QQ登录可编辑下拉菜单相关推荐

  1. ​Android实现仿QQ登录可编辑下拉菜单

    Android实现仿QQ登录可编辑下拉菜单 在Android里,直接提供的Spinner控件虽然可以实现下拉菜单的效果,但其效果并不理想,很多时候我们需要类似手机QQ那样既可以在文本框中直接输入编辑文 ...

  2. Android实现仿QQ登录可编辑下拉菜单

    在Android里,直接提供的Spinner控件虽然可以实现下拉菜单的效果,但其效果并不理想,很多时候我们需要类似手机QQ那样既可以在文本框中直接输入编辑文字,可以在下拉菜单中选中或者删除菜单选项,并 ...

  3. Android实现可编辑下拉菜单

    Android实现仿QQ登录可编辑下拉菜单 在Android里,直接提供的Spinner控件虽然可以实现下拉菜单的效果,但其效果并不理想,很多时候我们需要类似手机QQ那样既可以在文本框中直接输入编辑文 ...

  4. android studio 下拉菜单,怎么在android studio中使用Spinner实现一个下拉菜单

    怎么在android studio中使用Spinner实现一个下拉菜单 发布时间:2021-03-23 14:56:15 来源:亿速云 阅读:92 作者:Leah 这期内容当中小编将会给大家带来有关怎 ...

  5. Android实现仿QQ登录界面背景动画效果

    登录QQ的时候,我们会看到在登录界面的背景不是静态的,而是一段动画效果,刚开始觉得蛮好奇的,现在我们也来实现一下这种效果,实现起来还是挺简单的. 实现步骤: 1.自定义CustomVideoView类 ...

  6. Android仿手机淘宝多级下拉菜单

    我们在常用的电商或者旅游APP中,例如美团,手机淘宝等等,都能够看的到有那种下拉式的二级列表菜单.具体如图所示: 上面两张图就是美团的一个二级列表菜单的一个展示.我相信很多人都想开发一个跟它一样的功能 ...

  7. web前端页面——移动端简单登录页面、下拉菜单(代码详细注释)

      今天跟着专业老师复习了一下前端,感觉好多都已经忘记了,我将今天复习的一些重点整理出来. https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微 ...

  8. Android高仿QQ消息列表、侧拉删除菜单按钮效果

    目    录(本篇字数:3000) 介绍 Item布局 自定义存放Item父容器 Bug分析 ·一.解决滑动冲突 二.解决Item点击事件的冲突 三.限制只能有一个menu被打开 博文续篇 ListV ...

  9. 仿QQ空间,百思不得姐下拉刷新图片放大

    1.概述 实习生进阶到项目部分会带他们做一个百思不得姐项目,那么个人主页就有类似于QQ空间下拉图片放大的效果,趁着现在还闲就实现一下效果: 2.实现 1. 效果分析 ScrollView和ListVi ...

最新文章

  1. 不要一辈子靠技术生存
  2. maven web project打包为war包,目录结构的变化
  3. cv2.imread 中文路径返回null
  4. 工具的学习使用(二):快捷键、工具、批处理
  5. win10安装ensp启动40_acer e5-475g笔记本如何安装win10系统【图文教程】
  6. Leetcode 82. Remove Duplicates from Sorted List II
  7. 第25版 OpenStack Yoga 已发布
  8. Linux C语言连接MySQL 增删改查操作
  9. python strip() 方法
  10. nodejs面试题笔记
  11. 【Mendeley】自定义文献引用格式(国标GB2005)
  12. 用u盘装系统教程操作图解
  13. foxmail超大附件服务器文件怎么删,foxmail邮件太大怎么发?foxmail发送超大附件的方法...
  14. 【开源教程9】疯壳·开源蓝牙心率防水运动手环-心率监测
  15. word如何删除某一页的页眉
  16. mac画图工具 OmniGraffle (四)化繁为简
  17. CloudCompare:V2.6.3 菜单栏和工具栏 中英文对照 功能简述
  18. 从一个例子开始体验轻量级类隔离容器 SOFAArk | SOFAChannel#11 直播整理
  19. js检测开发者工具是否打开 防止别人调试代码
  20. phpMyAdmin 初始用户名 密码

热门文章

  1. Web自动化测试 Selenium+Eclipse+Junit+TestNG+Python
  2. linux下如何产生core,调试core
  3. Arcgis Server发布服务
  4. 2013年7月28日web前端学习笔记-------head相关标签应用
  5. Git常用命令使用大全
  6. yocto-sumo源码解析(十一): recvfds
  7. 九阴真经 第二层 第9天
  8. 百度面试测试开发工程师内容
  9. 安装Hue后的一些功能的问题解决干货总结(博主推荐)
  10. IntelliJ IDEA 建空包合并问题。