總結(jié)一下網(wǎng)上的辦法
可是一個(gè)都不管用
我想真的是應(yīng)該我的虛擬機(jī)出問(wèn)題了
神啊
讓我趕緊有錢買安卓手機(jī)吧。。
(那種很便宜的真心不想買。。。感覺(jué)。。不劃算。。OTZ
========================================================================原因分析:
Android新啟動(dòng)Activity,dialog或者其他窗體中中包含EditText, 新啟動(dòng)的activity的焦點(diǎn)默認(rèn)在EditText上,這時(shí)候android系統(tǒng)會(huì)自動(dòng)彈出軟鍵盤。這會(huì)導(dǎo)致擠壓activity本來(lái)的界面,影響美觀。
幾種解決方法:
一、解決效果:activity打開(kāi),軟鍵盤不自動(dòng)打開(kāi),焦點(diǎn)不在editText上面。當(dāng)點(diǎn)擊editText,再打開(kāi)軟鍵盤
具體方法:在onCreate()方法中將焦點(diǎn)放在另一個(gè)view上. view使用requestFocus()焦點(diǎn),但是如果讓button或者textView之類控件直接使用requestFocus()方法,則無(wú)法 獲取焦點(diǎn),焦點(diǎn)會(huì)依然在editText上。
只能在使用View的requestFocus()方法之前調(diào)用下面2個(gè)方法,view才可獲取焦點(diǎn):
view.setFocusable(true);
view.setFocusableInTouchMode(true);
然后調(diào)用 requestFocus()即可獲取焦點(diǎn)。
二、解決效果:activity打開(kāi),軟鍵盤不自動(dòng)打開(kāi),焦點(diǎn)落在editText上面。當(dāng)點(diǎn)擊editText,再打開(kāi)軟鍵盤
具體方法:在Activity中OnCreate方法里面加下面這句代碼 getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
或者在AndroidManifest.xml中該activity處添加android:windowSoftInputMode屬性
eg.
android:windowSoftInputMode="stateAlwaysHidden" />
PS:如果實(shí)在不放心,可以兩個(gè)都添加
三、解決效果:android機(jī)頂盒開(kāi)發(fā)時(shí),長(zhǎng)按遙控器OK鍵(此處的長(zhǎng)按操作一般都為用戶按鍵時(shí)間過(guò)長(zhǎng)導(dǎo)致的誤操作,而不是有意長(zhǎng)按)打開(kāi)Activity,軟鍵盤不自動(dòng)打開(kāi),焦點(diǎn)落在editText上面。
解決方法(本人未測(cè)試,不知是否可用):在OnCreate中設(shè)置延時(shí),必須等延時(shí)事件完畢才讓EditText能獲得焦點(diǎn)彈出軟鍵盤;或者讓EditText一直獲得焦點(diǎn),必須延時(shí)事件結(jié)束后EditText才能響應(yīng)軟鍵盤彈出事件。此處用到Timer輔助實(shí)現(xiàn)。
eg. @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
//此處EditText獲得焦點(diǎn)或者軟鍵盤彈出操作
...................
// InputMethodManager imm = (InputMethodManager)MainActivity.this.getSystemService(INPUT_METHOD_SERVICE);
// imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
}
}, 1000); //在一秒后操作
}
自動(dòng)關(guān)閉:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);
引用自http://www.eoeandroid.com/blog-687425-4752.html
==================================================================
剛進(jìn)入activity的時(shí)候,如果布局組件有edittext的話,往往edittext會(huì)獲取焦點(diǎn),自動(dòng)彈出軟鍵盤,影響整個(gè)界面的視覺(jué)效果。解決方法如下:
可以在edittext的父布局結(jié)構(gòu)中(例如LinearLayout,RelativeLayout等)添加
view sourceprint?
android:focusable="true"
android:focusableInTouchMode="true"
或
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true"
android:textIsSelectable="true" />
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。