在EditText中仿weibo发布#话题文字#作者给出两种较好方案: 1、一种是自定义hint,采用一个EditText布局,通过拼接字符串控制 ##+content。 优点在于:1、可以添加多个@##类似标签。2、支持整体删除功能。3、方便获取文本内容 存在的主要问题是:1、光标可以运动到hint文字中,不满足需求。2、自定义hint逻辑复杂,可扩展行不好,通过长按出现的箭头将光标移动到hint文字或者话题文字**,在 addTextChangedListener 的 afterTextChange 方法里改变文本时,会因为循环调用 StackOverFlow,可以通过变量开关或者其它监听事件解决。 2、使用叠加布局,TextView显示##,EditText通过marginLeft,留出话题文字的长度。 存在的主要问题:1、marginLeft的数值与Layout.getDesiredWidth获取的数值有偏差。当换行的时候,第一行使用话题文字填充的大小不确定。不同类型的的主题文字效果不同。2、EditText必须设置android:background="@null",去掉边框,TextView和EditText的高度无法精确对齐。 优点在于:1、hint系统自带,逻辑简单清晰。2、 ##标题标签永远不可编辑。
arthurlang / edittext-weibo-topic Goto Github PK
View Code? Open in Web Editor NEW在EditText中仿weibo发布#话题文字#作者给出两种较好方案,还有些未解决的问题,请大家指点