还是一如既往,谈谈思路吧,毕竟代码是不断变化的,永远不变的是思路,实际上我也已经实现了相关的功能,感觉并没有多大的难度,从写界面开始到结束,满打满算就一个小时左右,那么我们开始吧。

首先我们分析一下这个效果的具体操作流程,首先双击具体的聊天记录项,然后渐变的效果弹出具体的内容界面,这个内容界面是直接覆盖顶端的状态栏的,这个后面单独设置就行了,这里不做讨论。

整个弹出界面的内容其实也很简单,就是一个滑动栏里面嵌套一个TextView,其实说真的,TextView这个控件,android老一代前辈在制作这个控件的时候真的是倾注了很多心血,这个控件是我最喜欢的控件之一,虽然他很古老。

这里可能很多人希望直接通过Activity的方式进行实现,但是说真的,如果作为框架,或者控件库中,实现了这样一个不伦不类的甚至含盖了一部分业务代码的activity类的话,感觉也的确是太过于业余了。

所以,这里我还是坚定的放弃了使用了Activity,虽然fragment也不错,但是怎么说好呢,这两个总感觉一旦使用就会增加代码的耦合度,可能是我个人的偏见吧= =

那么开始说正事了,这里我打算使用AlertDialog,自定义版本。也就是当双击了TextView或者任意控件时,通过传入参数:需要显示的具体内容来通过自定义AlertDialog来实现具体的效果。自定义AlertDialog方面,网上有很多的教程,所以这里我就不特地说明了,毕竟我也是很喜欢说废话的人,担心我一写,整片文章就会缺乏必要的重点。

另外:写一些我在写这个控件的时候踩的坑吧:

1.AlertDialog的构造方法有一个ThemeResId参数,从字面意思来看其实是设置这个控件的主题,但是很遗憾,这个构造方法貌似完全没有起到设置主题的目的,因为我尝试了不停地更换主题,整个控件的动画依然没有丝毫的变化,最后是通过在构造方法中手动调用设置主题的方法来硬性的指定主题,说真的,这么粗暴的方法,我真的很反感。

关于微信聊天记录双击弹出具体显示内容的效果相关推荐

  1. 【Chapter1】微信自带弹出框

    文章目录 一.简介 二.弹出框 1.提示框 1.1 显示提示框 1.2 加载提示框 2.是否选择框 3.多项选择框 三.嵌套 四.遇到的问题 最近用了一周写了一个仿知乎的小程序,将会陆续整理,包括前端 ...

  2. 仿微信软键盘弹出与隐藏

    仿微信软键盘弹出与隐藏,效果图如下: 实现输入框弹出,软键盘弹出,获取焦点,否则失去焦点. 首先在 AndroidManifest 文件的对应 Activity 中加入下面代码: android:wi ...

  3. QT表格双击弹出对话框

    QT表格双击弹出对话框 QT版本5.0.3 文章目录 QT表格双击弹出对话框 1.效果预览 2.新建项目 3.添加表格类 4.创建对话框类 4.1 创建对话框类 4.2 在mydialog.h中定义对 ...

  4. Jquery 点击图片在弹出层显示大图

    [转]Jquery 点击图片在弹出层显示大图 使用jquery, 实现点击图片在弹出层显示大图,再次点击关闭,加入图片高宽和窗口高宽的大小判断. 效果图片: 1.点击前的效果: 2.点击后的效果: h ...

  5. html点击图片弹出大图特效代码,Jquery 点击图片在弹出层显示大图

    使用jquery,实现点击图片在弹出层显示大图,再次点击关闭,加入图片高宽和窗口高宽的大小判断. 效果图片如下: 1.点击前的效果: 2.点击后的效果: html代码如下: 弹出层图片 Js代码如下: ...

  6. layui怎样将响应数据展示在页面_layui怎么对弹出层显示数据

    layui怎么对弹出层显示数据?下面给大家举个例子:点击查看 function func11() { console.log($.cookie("id")); //iframe窗 ...

  7. java让弹窗在最上层_layer弹出层显示在top顶层的方法

    因为项目框架用了iframe,所以在用layer时,默认layer.open弹出的窗口只能在iframe子窗口区域显示.现在想让layer在父窗口或者说框架的最顶层显示,想到用top.layer.op ...

  8. Android通知栏Notification弹出横幅显示的解决方法

    Android通知栏Notification弹出横幅显示的解决方法 参考文章: (1)Android通知栏Notification弹出横幅显示的解决方法 (2)https://www.cnblogs. ...

  9. NodeJS 数组超出部分以弹出框显示。

    ellipsis,Tooltip数组超长展示方式 1.第一种方法 超出部分以省略号形式显示,鼠标放上去展示详细内容.(代码如下) {title: title("字段名"),data ...

最新文章

  1. 【计算机网络】网络层 : BGP 协议 ( BGP 协议简介 | BGP 协议信息交换 | BGP 协议报文格式 | BGP-4 常用报文 | RIP 、OSPF、BGP 协议对比 )
  2. K近邻算法基础:KD树的操作
  3. Js获取地址栏参数值
  4. CapsLock魔改大法——变废为宝实现高效编辑
  5. 【Microstation】第二章:Microstation三维建模基础知识
  6. Flutter CupertinoSliverRefreshControl 苹果风格的刷新效果
  7. mac weka连接mysql_weka连接mysqllinux
  8. 【公司内部资料】顺丰新员工入职考试35道考试题目答案
  9. 蚂蚁金服Java面试题、笔试题(含答案)-高级
  10. 回顾2017、展望2018
  11. .Net中使用数据库(sqlite)的大体流程(简单向)
  12. 算法概念:大O表示法/小o表示法/Ω/Θ
  13. wlop一张多少钱_回答:小白有个问题,为什么很多人都说 WLOP鬼刀 的画不够好?...
  14. 使用EasyPOI导出Excel模板数据(含图片)
  15. OpenCV——透视变换
  16. Ubuntu下GloVe中文词向量模型训练
  17. 根据需求设计并实现数据库
  18. iMeta高被引论文|西农焦硕/韦革宏等-干旱生态系统中土壤真菌与细菌群落构建的关系...
  19. 怀孕后可使用计算机吗,怀孕可以用电脑工作吗?使用须适当
  20. 2021中国数字经济发展白皮书 附下载

热门文章

  1. php 函数导航,PHP经典分页导航函数
  2. SQL语句中ON DUPLICATE KEY UPDATE column=IF(条件,值1,值2 ) 的使用
  3. Git使用汇总之git checkout -- <file>的真正用法
  4. 腾讯后台开发面试题--整理1
  5. 鸿蒙系统的升级名单,首批升级鸿蒙系统的名单确认,华为安卓系统将成为过去式!...
  6. c++如何定义二维数组结构体_原来数组还可以这么玩(宏把数组玩坏了)
  7. cadence原理图封装pin名称重复_原理图设计篇|单片机设计项目实例分享
  8. python阶乘匿名函数_python的高阶函数与匿名函数
  9. 安装linux系统结果,Linux 系统安装[Redhat]
  10. img引Linux的绝对路径,什么是绝对路径和相对路径