android禁止軟鍵盤彈出
『壹』 如何禁止android軟鍵盤自動彈出
用的是android自帶的輸入框組件漏胡的話,是會自動彈出軟鍵盤的. 如果是其他的激迅地方需要彈出軟鍵盤可以先在想要彈出的地方先獲取組件焦點,然後調用鍵返鉛攔盤就ok了.
『貳』 android中怎麼調試軟鍵盤遮擋的問題
問題概述
在編輯框輸入內容時會彈出軟鍵盤,而手機屏幕區域有限往往會遮住輸入界面,我們先看一下問題效果圖:
輸入用戶名和密碼時,系統會彈出鍵盤,造成系統鍵盤會擋住文本框的問題,如圖所示:
輸入密碼時輸入框被系統鍵盤遮擋了,大大降低了用戶操作體驗,這就是開發中非常常見的軟鍵盤遮擋的問題,該如何解決?
簡單解決方案
方法一
在你的activity中的oncreate中setContentView之前寫上這個代碼
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
方法二
在 項目的AndroidManifest.xml文件中界面對應的<activity>里加入
這樣會讓屏幕整體上移。如果加上的 是 android:windowSoftInputMode="adjustPan"這樣鍵盤就會覆蓋屏幕。
關於android:windowSoftInputMode
activity主窗口與軟鍵盤的交互模式,可以用來避免輸入法面板遮擋問題,Android1.5後的一個新特性。
這個屬性能影響兩件事情:
【一】當有焦點產生時,軟鍵盤是隱藏還是顯示
【二】是否減少活動主窗口大小以便騰出空間放軟鍵盤
它的設置必須是下面列表中的一個值,或一個」state…」值加一個」adjust…」值的組合。在任一組設置多個值——多個」state…」values,例如&mdash有未定義的結果。各個值之間用|分開。
例如:
<activityandroid:windowSoftInputMode="stateVisible|adjustResize". . . >
在這設置的值(除"stateUnspecified"和"adjustUnspecified"以外)將覆蓋在主題中設置的值
方法三
把頂級的layout替換成ScrollView,或者說在頂級的Layout上面再加一層ScrollView。這樣就會把軟鍵盤和輸入框一起滾動了,軟鍵盤會一直處於底部。
代碼可控性方法
1、主界面布局文件
2、自定義LinearLayoutView
該組件可實現根據軟鍵盤的彈出/關閉而隱藏和顯示某些區域,這是問題解決最關鍵部分,主要有兩點:
① 重寫onSizeChanged方法
該方法是View生命周期的方法,當View尺寸發生變化時調用,如豎屏橫屏切換、軟鍵盤彈出。這里當軟鍵盤彈出造成View尺寸改變,就會調用onSizeChanged方法,在該方法實現代碼的核心思想是根據尺寸變化,當變大(軟鍵盤彈出),將某些區域隱藏以給編輯界面預留出足夠顯示空間;當恢復(軟鍵盤關閉),再將隱藏的區域顯示出來
②提供KeyBordStateListener 介面採用回調機制調用介面的實現方法。
3.主界面MainActivit
實現效果
鍵盤彈出:
鍵盤關閉:
『叄』 Android有AutoCompleteTextView有沒有什麼辦法關閉軟鍵盤
在輸入框中輸入我們想要輸入的信息就會出現其他與其相關的提示信息,這種效果在Android中是用AutoCompleteTextView實現的。
由於AutoCompleteTextView是一個可以輸入的控制項,EditText的子類
因此如果需要屏蔽軟鍵盤需要做以下兩點設置:
注冊Touch事件,android中當一個EditText獲取焦點後則會自動彈出輸入法,那麼只需要在onTouch里屏蔽它,代碼:
AutoCompleteTextView.setOnTouch(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
AutoCompleteTextView view = (MyAutoCompleteTextView) v;
view.setInputType(InputType.TYPE_NULL);
return false;
}
});
2.注冊itemClick事件,即點擊條目的時候,需要將結果寫到AutoCompleteTextView上
AutoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String txt = (String) parent.getItemAtPosition(position);
}
});
『肆』 android彈出軟鍵盤是的布輸入框壓縮,怎麼解決
方法一:在你的activity中的oncreate中setContentView之前寫上這個代碼getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
方法二:在項目的AndroidManifest.xml文件中界面對應的<activity>里加入android:windowSoftInputMode="stateVisible|adjustResize",這樣會讓屏幕整體上移。如果加上的是
android:windowSoftInputMode="adjustPan"這樣鍵盤就會覆蓋屏幕。
方法三:把頂級的layout替換成ScrollView,或者說在頂級的Layout上面再加一層ScrollView的封裝。這樣就會把軟鍵盤和輸入框一起滾動了,軟鍵盤會一直處於底部。
註:方法一和二是同一種方法,不過一個是在代碼里實現一個是在xml文件里實現。可能會應為1.5和之前的版本不支持該方法。但是方法三是肯定沒有問題的。
『伍』 android開發中,EditText點擊事件可以響應,就是不彈出軟鍵盤。怎麼解決,EditText是在Dialog中使用的
當點擊EditText時:
1、存儲當前的輸入類型
2、設置輸入類型為InputType.TYPE_NULL,禁止手機軟鍵盤
3、還原原來的輸入類型,因為這次操作完,還要允許用戶修改。
4、彈出日期選擇對話框,操作完後將結果顯示到EditText上。
隱藏軟體盤,代碼如下:
EditText et_start_time = (EditText) this.findViewById(R.id.et_start_time);
int inType = et_start_time.getInputType();
et_start_time.setInputType(InputType.TYPE_NULL);
et_start_time.onTouchEvent(event);
et_start_time.setInputType(inType);
et_start_time.setSelection(et_start_time.getText().length());