由于項目需求劳翰,需要實現(xiàn)一個類似于微博的可以添加話題的編輯框党涕,實現(xiàn)發(fā)布帖子時可以添加話題,并且話題要變色 可選中 可刪除等.起初為了快速實現(xiàn)装哆,就在網(wǎng)上找了以下,有人已經(jīng)實現(xiàn)了此功能吝秕,這里給出參考帖子的鏈接Android 自定義view-仿新浪微博#話題#插入EditText
不過測試的時候發(fā)現(xiàn)有些許bug,并且在華為手機上刪除話題不能被選中,于是就基于參考帖子的實現(xiàn)思路救巷,對其中一些東西進(jìn)行了修改,并適配了華為(原因是通過 KeyCode==KeyEvent.KEYCODE_DEL竟然監(jiān)聽不到華為個別機型的刪除鍵)手機.
實現(xiàn)思路
1.通過onSelectionChanged()監(jiān)聽光標(biāo)的位置句柠,來判斷光標(biāo)是否被選中在話題文字內(nèi)部浦译,如果在話題內(nèi)部,則將光標(biāo)定位到話題結(jié)束處.
2.添加addTextChangedListener()溯职,監(jiān)聽文字變化.如果是刪除文字動作精盅,則遍歷TEditText內(nèi)部的list,判斷是否有話題谜酒,如果有并且刪除的是話題叹俏,則對話題進(jìn)行選中.最后,刷新TEditText的UI展示.
UI效果
如圖1是添加話題的效果
圖2是話題被選中的效果