關於ListView、EditText、游標、和軟鍵盤
需求:顯示若干行資訊,每行都包含 EditText,每個 EditText 都可以輸入。
當時的解決辦法:ListView + LinearLayout
佈局大致情況:ListView 巢狀 LinearLayout, 30個item,每個 Item 包含一個 EditText,也還有其他控制元件(button, checkbox 等)
遇到的問題:
- 當時清單檔案使用的預設配置 (即 android: windowSoftInputMode 沒有做任何配置)
點選任意一個 Item 中的 Edittext 之後,軟體盤正常彈出,但是很快發現點中的Edittext 並沒有獲取焦點(即沒有游標在閃爍)。根據查閱資料的說法是彈出輸入法之後 ListView 進行了重繪導致失去了焦點。此時我沒有沿著這條線路繼續,而是想到了之前的解決辦法,看2。
- 根據查閱的資料,在清單檔案中該Activity做如下配置:
<span style="font-size:12px;"> android:windowSoftInputMode = adjustPan
</span>
經過測試發現,焦點和游標問題確實解決了,點選 EditText 彈出軟體盤後並不會失去焦點,但是如果想連續輸入(輸入法不收回,直接下滑),發現最下端的幾個Item不能完全顯示(滑不上去)。(其實收回軟鍵盤再下滑完全沒有問題,但是測試人員就說這是 bug ,沒辦法還是繼續解決唄!)
我試著在 LIstView 下方添加了一個佔位 View ,想讓 ListView 重繪時留夠空間,結果發現無論新增多高的佔位 View ,都沒有作用。作罷,還是回到方法1。
繼續方法1:
首先:
android:windowSoftInputMode = adjustResize
然後在 ListView 介面卡的 getView() 方法中,EditText 新增事件
int index = -1; edittext.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View view, MotionEvent event) { //在TOUCH的UP事件中,要儲存當前的行下標,因為彈出軟鍵盤後,整個畫面會被重畫 //在getView方法的最後,要根據index和當前的行下標手動為EditText設定焦點 if (event.getAction() == MotionEvent.ACTION_UP) { index = position; } return false; } });
if (index != -1 && index == position) {
// 如果當前的行下標和點選事件中儲存的index一致,手動為EditText設定焦點。 <pre name="code" class="java"> edittext.requestFocus();
//強制將游標移動到最後
<pre name="code" class="java"><pre name="code" class="java"> edittext.setSelection(radio.note.getText().length());
}
以上,即可解決問題。(並非完全原創,結合以下兩篇文章,總結了解決問題的過程,防止自己再犯同樣的錯誤)
相關推薦
關於ListView、EditText、游標、和軟鍵盤
需求:顯示若干行資訊,每行都包含 EditText,每個 EditText 都可以輸入。 當時的解決辦法:ListView + LinearLayout 佈局大致情況:ListView 巢狀 LinearLayout, 30個item,每個 Item 包含一個 EditTe
android仿微信、QQ等聊天介面,實現點選輸入框彈出軟鍵盤、點選其他區域收起軟鍵盤,預設滑動至最低端
如圖所示,點選輸入框及選擇圖片和傳送按鈕時軟鍵盤顯示且不消失,點選其他區域,則隱藏軟鍵盤。 主要程式碼如下: override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { if (ev!!.getAction() ==
Android 修改EditText的游標顏色和背景色
Edittext 的游標顏色: 在xml佈局檔案中 android:textCursorDrawable=”@null” 表示游標的顏色和字型的顏色一樣 當然,我們也可以自定義游標的顏色,在drawable資料夾下寫個edit_cursor_color.
EditText初始不彈出軟鍵盤,只有游標顯示,點選再彈出
剛進來的時候,不彈出鍵盤,EditText 有個游標上面閃,證明是可編輯的,這個還是符合使用者習慣的,從使用者體驗的角度上講,還保留游標的閃動是好的。 解決方法1:(已經試過,證明可以) 在activity屬性中設定android:windowSoftInputMode="
開啟新介面時,EditText焦點自動彈出軟鍵盤
對於一點點空閒時間,看看文章,竟然想起以前的一個問題,趕緊修改起來。 Android新啟動Activity時,dialog或者其他窗體中包含EditText,新啟動的activity的焦點預設在EditText上,這時候安卓系統會自動彈出軟鍵盤。這會導致擠壓activity介
安卓中EditText點選空白處隱藏軟鍵盤
Android開發過程中,點選EditText會出現鍵盤,當我們輸入完畢時,還要點一下返回鍵才能隱藏軟鍵盤,重寫下面這個方法,只要點選空白處就可以隱藏軟鍵盤,很方便,很實用。 /**
Android點選EditText之外的地方隱藏軟鍵盤同時使EditText失去焦點
1.只是隱藏軟鍵盤: @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_
如何獲取Android軟鍵盤狀態和軟鍵盤高度
應用場景 在Android應用中有時會需要獲取軟鍵盤的狀態(即軟鍵盤是顯示還是隱藏)和軟鍵盤的高度。這裡列舉了一些可能的應用場景。 場景一 當軟鍵盤顯示時,按下返回鍵應當是收起軟鍵盤,而不是回退到上一個介面,但部分機型在返回鍵處理上有bug,按下返
點選返回鍵,同時隱藏輸入區域和軟鍵盤
我當時要做的需求是,底部評論區,和評論編輯區域,首先評論區域是顯示的,編輯區域是隱藏的,當點選評論區時,隱藏評論區,顯示編輯評論的區域(見圖)和edittext獲取焦點,彈出軟鍵盤, 在剛開始做的時候嘗試了很多種方法(成功的方法在最後一條,中間是我做的一些實驗的方法和一開始
Android開發之將Edittext輸入彈出的軟鍵盤設定搜尋確定鍵。詳細程式碼,已驗證可用。
1,首先在佈局中新增 android:imeOptions="actionSearch 2,然後java程式碼中設定程式碼:et_input_password.setOnEditorActionLi
Android中獲取軟鍵盤狀態和軟鍵盤高度
應用場景 在Android應用中有時會需要獲取軟鍵盤的狀態(即軟鍵盤是顯示還是隱藏)和軟鍵盤的高度。這裡列舉了一些可能的應用場景。 場景一 當軟鍵盤顯示時,按下返回鍵應當是收起軟鍵盤,而不是回退到上一個介面,但部分機型在返回鍵處理上有bug,按下返回鍵後
activity和軟鍵盤遮擋問題
今天解決了一個bug,就是魅藍3手機的軟鍵盤不能把dialog樣式的activity頂起來,導致佈局裡的一部分看不到,我在網上查詢解決方案,發現瞭如下幾個方法,一一嘗試了但是都沒用。但是這幾種方案對於解決其它款式的手機應該是有用的。 魅藍3上的效果: 其
Linux特殊權限set_uid、set_gid、stick_bit命令和軟鏈接文件、硬連接文件
set uid 特殊權限set_uid:用ls -l查看 passwd命令文件的路徑可以看到這個文件和之前所看到的文件有些不同,有紅色的標記,而且有個s權限:這個s就是set_uid的權限,這個權限可以讓普通用戶修改自己的密碼,這個權限的原理是:當普通用戶執行passwd命令的一瞬間給它賦予root的
二、Linux系統硬鏈接和軟鏈接詳細介紹與實踐
導致 9.png 創建 訪問 tap 除了 all window tor 鏈接的概念 在linux系統中,鏈接可分為兩種:一種被稱為硬鏈接(Hard LinK),另一種被稱為軟鏈接或符號鏈接(Symbolic Link)。在默認不帶參數的情況下,執行ln命令創建的鏈
特殊權限set_uid,set_gid,stick_bit和軟、硬鏈接
linux● suid前面講的文件權限都是3位數,其實在前面還有一位,就是特殊權限,set uid,set gid,stick bit。該權限針對二進制可執行文件,使文件在執行階段具有文件所有者的權限。例如passwd命令,當普通用戶執行passwd命令時,可以臨時獲得root權限,從而可以更改密碼。 [ro
軟件包管理、配置網絡、文本/文件查找、總結和答疑
成功 配置ip地址 code ifconfig etc lease cli 取反 mariadb #################################################################軟件包管理 1.關閉虛擬機,圖形添加光驅設備
【LC3開源峰會網絡技術系列之二】阿裏雲開發智能網卡的動機、功能框架和軟轉發程序
copy 特點 fda 優化 ext shadow 所有 type 解密 摘要: 摘要 這篇文章介紹了阿裏雲開發智能網卡的動機、功能框架和軟轉發程序以及在軟轉發過程中發現的問題和優化方法。 主講人陳靜 阿裏雲高級技術專家 主題Zero-copy Optimization f
17個最好的桌面RPG夥伴應用程序、工具和軟件
谷歌 fig 痛苦 發生器 好遊戲 超級 -a 調整 一位 不管你是剛剛開始探索世界的桌面rpg和桌面遊戲,甚至如果你一直在做它多年來,應用程序和其他軟件可以提高你的經驗,讓它更有趣。 這些應用程序可以幫助你幾乎每一個階段的活動,從設計角色設置場景,甚至跟蹤誰是誰和你。 在
Oracle中PL/SQL之常量和變數的定義、遊標(游標)的使用
PL/SQL常量和變數的定義 變數的資料型別:char、varchar2、date、number、boolean、long 常量定義:isshow boolean :=true; 說明變數:說明變數名、資料型別和長度後用分號結束說明語句。例:e_name varchar2(20);
強引用、弱引用和軟引用
轉載請註明地址:http://blog.csdn.net/yincheng886337/article/details/50479459 談到這四種引用,先讓我做個這樣的比喻,JVM好比你,記憶體