我有一個自定義視圖,該視圖擴展了具有用於富文本編輯的ToggleButtons的EditText。如果我允許自動完成,那麼當前單詞的指示符將觸發我對樣式跨度的檢測。如何確定EditText中的高亮/下劃線是否來自自動完成
例如,在大多數設備上,自動更正的符合條件的詞是下劃線。在輸入時,我有一個文本觀察器,用於跟蹤應用於文本的當前樣式,並在用戶切換樣式按鈕時添加新的可擴展樣式。這最終檢測下劃線並打開開關。
我可以編寫代碼來檢查是否在找到跨度之前設置了下劃線切換。 (我實際上需要爲我的所有樣式執行此操作,因爲有些設備使用背景顏色來指示當前的自動更正詞。)但我不確定將使用什麼來觸發將切換回到關閉狀態。檢查他們是否鍵入空格?當你選擇一個建議的單詞會發生什麼?
有沒有人這樣做?有沒有辦法來問,如果跨度來自自動完成或任何其他通知知道操作系統提請跨度?
如果您自己生成所有樣式跨度(除了自動完成樣式),那麼爲什麼不向他們添加標誌/標識等內容?只有包含這樣一個標誌/ ID的跨度,你才能切換相關的「ToggleButton」。沒有它的Spans是系統生成的,因此應該被忽略。我可能會爲所有跨度創建簡單的子類來完成此操作,或者某種代理/包裝器。 –
不幸的是,我自己並沒有生成它們。 – Jeff
您能否詳細說明跨度如何生成?我很想看看他們來自哪裏。 –