当前位置: 首页 > news >正文

Android 如何通过代码实时设置EditTextView光标

背景:换肤框架下,QA进行深色浅色切换说输入框光标颜色没有改变,转UI结果UI说需要修改!!!!!

本来有方法可以设置,但是 设置后未生效。重新进入该页面才生效!!!!

mView.setTextCursorDrawable(drawable);

查看内部方法:

通过Editor的loadCursorDrawable方法得知,此前已经有光标背景了则不会进行重新设置了,所以就算你实时通过代码方法setTextCursorDrawable设置了新的,mDrawableForCursor由于之前不为null所以不会重新设置,所以不会生效。

即 mDrawableForCursor = mTextView.getTextCursorDrawable(); 方法不会执行

通过查资料发现只能用反射实现,于是就有了下面代码 

Drawable drawable = SkinCompatVectorResources.getDrawableCompat(mView.getContext(), mTextCursorDrawable);try {// Get the editorField fieldP  = TextView.class.getDeclaredField("mEditor");fieldP.setAccessible(true);Object editorP = fieldP.get(mView);// Set the drawablesfieldP = editorP.getClass().getDeclaredField("mDrawableForCursor");fieldP.setAccessible(true);fieldP.set(editorP, drawable);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}

运行后,成功实时设置光标颜色了!!!!!!!!!

http://www.lryc.cn/news/395047.html

相关文章:

  • 202488读书笔记|《365日创意文案》——无聊的 到底是这世间, 还是自己?懂得忘却的人才能前进
  • iperf3: error - unable to connect to server: No route to host
  • 正则表达式中的贪心匹配
  • 线程相关概念及操作
  • 2024最新版若依-RuoYi-Vue3-PostgreSQL前后端分离项目部署手册教程
  • PHP源码:新闻门户系统(附管理后台+前台)
  • 15kg级弹簧刀高速巡飞无人机技术详解
  • 中国东方资产管理25届秋招北森测评笔试如何高分通过?真题考点分析看完这篇就够了
  • 简写单词BC149
  • Chapter11让画面动起来——Shader入门精要学习笔记
  • c++之命名空间详解(namespace)
  • 【大模型】在大语言模型的璀璨星河中寻找道德的北极星
  • 嵌入式Linux之Uboot简介和移植
  • 算法整理——【贪心算法练习(1)】
  • 人脸识别课堂签到系统【PyQt5实现】
  • Linux dig命令常见用法
  • 数学建模论文写作文档word
  • 嵌入式C语言面试相关知识——CPU、进程和线程相关(相关问题很多,会经常过来更新)
  • Linux学习看这一篇就够了,超超超牛的Linux基础入门
  • el-scrollbar组件使用踩坑记录
  • Linux计算机结构
  • 应用进程、SurfaceFlinger进程、HWC进程 之间的关系
  • 66.Python-web框架-Django-免费模板django-datta-able的分页的一种方式
  • Python编程学习笔记(1)--- 变量和简单数据类型
  • 第二证券:资金抱团“高股息”,超三成A股年内创历史新低!
  • ASAN排查程序中内存问题使用总结
  • day01:项目概述,环境搭建
  • Python爬虫与数据可视化:构建完整的数据采集与分析流程
  • Java---包装类与泛型
  • 如何优化 PostgreSQL 中对于复杂数学计算的查询?