欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

android彈出鍵盤(pán),安卓彈出鍵盤(pán)

android 雙屏無(wú)法彈出系統(tǒng)鍵盤(pán)

原因是因?yàn)楫?dāng)界面初始化的時(shí)候可能EditText并沒(méi)有初始化完成,就要求顯示軟鍵盤(pán)了。

成都創(chuàng)新互聯(lián)公司專(zhuān)注于泊頭企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都做商城網(wǎng)站。泊頭網(wǎng)站建設(shè)公司,為泊頭等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站建設(shè),專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

在包含EditText外層布局上添加,搶在EditText獲取焦點(diǎn),即可。

正常情況下,只要寫(xiě)了EditText控件,當(dāng)進(jìn)入Activity時(shí),是會(huì)直接顯示軟鍵盤(pán)的,但是如果我們的EditText是GONE或者INVISIBLE的話,當(dāng)我們點(diǎn)擊其他控件,然后讓Edittext顯示,并且彈出軟鍵盤(pán),那么這個(gè)時(shí)候就必須關(guān)注順序的問(wèn)題,必須必須先讓EditText顯示,在調(diào)用顯示軟鍵盤(pán)的代碼才可以,如果先讓軟鍵盤(pán)彈出再讓EditText顯示,這個(gè)時(shí)候軟鍵盤(pán)是彈不出來(lái)的。

android 怎么讓鍵盤(pán)彈出

Android軟鍵盤(pán)強(qiáng)制彈出及隱藏輸入法的方法:

很多應(yīng)用中對(duì)于一個(gè)界面比如進(jìn)入搜索界面或者修改信息等等情況,為了用戶(hù)體驗(yàn)應(yīng)該自動(dòng)彈出軟鍵盤(pán)而不是讓用戶(hù)主動(dòng)點(diǎn)擊輸入框才彈出(因?yàn)橛脩?hù)進(jìn)入該界面必然是為了更改信息)。具體實(shí)現(xiàn)這種效果的代碼如下:

java代碼

EditText editText.setFocusable(true);

editText.setFocusableInTouchMode(true);

editText.requestFocus();

InputMethodManager inputManager =

(InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);

inputManager.showSoftInput(editText, 0);

首先要對(duì)指定的輸入框請(qǐng)求焦點(diǎn)。然后調(diào)用輸入管理器彈出軟鍵盤(pán)。

警告:對(duì)于剛跳到一個(gè)新的界面就要彈出軟鍵盤(pán)的情況上述代碼可能由于界面為加載完全而無(wú)法彈出軟鍵盤(pán)。此時(shí)應(yīng)該適當(dāng)?shù)难舆t彈出軟鍵盤(pán)如998毫秒(保證界面的數(shù)據(jù)加載完成)。實(shí)例代碼如下:

java代碼:

Timer timer = new Timer();

timer.schedule(new TimerTask()

{

public void run()

{

InputMethodManager inputManager =

(InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);

inputManager.showSoftInput(editText, 0);

}

},

998);

Android EditText獲取焦點(diǎn)并彈出軟鍵盤(pán)

1、首先,在xml文件中通過(guò)讓edittext獲取焦點(diǎn)

EditText

? ? android:layout_width="match_parent"

? ? android:layout_height="match_parent"

? ? android:padding="17dp"

? ? android:textColor="#333333"

? ? android:textColorHint="#999999"

? ? android:hint="請(qǐng)輸入課件描述..."

? ? android:gravity="top|left"

? ? android:background="@null"

? ?

? ? requestFocus/

/EditText

2、在清單文件中給activity添加android:windowSoftInputMode=”stateVisible”屬性,這樣一進(jìn)入這個(gè)頁(yè)面的時(shí)候光標(biāo)就自動(dòng)顯示,軟鍵盤(pán)也顯示出來(lái)

activity

? ? ? ? android:name=".wonderfulmoment.AddCourseWareDescriptionActivity"

? ? ? ? android:windowSoftInputMode="stateVisible"/activity

Android 點(diǎn)擊輸入框彈出鍵盤(pán),布局隨鍵盤(pán)往上移動(dòng)

一、效果圖:

二、Code:

/**

*? 1、獲取main在窗體的可視區(qū)域

*? 2、獲取main在窗體的不可視區(qū)域高度

*? 3、判斷不可視區(qū)域高度,之前根據(jù)經(jīng)驗(yàn)值,在有些手機(jī)上有點(diǎn)不大準(zhǔn),現(xiàn)改成屏幕整體高度的1/3

*? ? ? 1、大于屏幕整體高度的1/3:鍵盤(pán)顯示? 獲取Scroll的窗體坐標(biāo)

*? ? ? ? ? ? ? ? ? ? ? ? ? 算出main需要滾動(dòng)的高度,使scroll顯示。

*? ? ? 2、小于屏幕整體高度的1/3:鍵盤(pán)隱藏

*

* @param main 根布局?

* @param scroll 需要顯示的最下方View

*/

public static void addLayoutListener(final View main, final View scroll) {

main.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

? ? @Override

? ? public void onGlobalLayout() {

? ? ? ? Rect rect = new Rect();

? ? ? ? main.getWindowVisibleDisplayFrame(rect);

? ? ? ? int screenHeight = main.getRootView().getHeight();

? ? ? ? int mainInvisibleHeight = main.getRootView().getHeight() - rect.bottom;

? ? ? ? if (mainInvisibleHeight screenHeight / 4) {

? ? ? ? ? ? int[] location = new int[2];

? ? ? ? ? ? scroll.getLocationInWindow(location);

? ? ? ? ? ? int srollHeight = (location[1] + scroll.getHeight()) - rect.bottom;

? ? ? ? ? ? main.scrollTo(0, srollHeight);

? ? ? ? } else {

? ? ? ? ? ? main.scrollTo(0, 0);

}

}

});

}

三、調(diào)用方式:

在Activity的onCreate()中調(diào)用,

僅此記錄。

android 如何讓軟鍵盤(pán)自動(dòng)彈出

可以通過(guò)下面的代碼來(lái)實(shí)現(xiàn)Android自動(dòng)彈出軟鍵盤(pán):

edittext.requestFocus(); //edittext是一個(gè)EditText控件

Timer timer = new Timer(); //設(shè)置定時(shí)器

timer.schedule(new TimerTask() {

@Override

public void run() { //彈出軟鍵盤(pán)的代碼

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

imm.showSoftInput(edittext, InputMethodManager.RESULT_SHOWN);

imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY);

}

}, 300); //設(shè)置300毫秒的時(shí)長(zhǎng)

說(shuō)明:同樣是在寫(xiě)Techo Lite時(shí)遇到的問(wèn)題。希望程序可以自動(dòng)彈出軟鍵盤(pán),可是嘗試了各種辦法都沒(méi)有效果。問(wèn)題的原因似乎是必須等待UI繪制完成后彈出軟鍵盤(pán)的代碼才會(huì)有效。于是就采用了上面的方法。需要注意的是,在此之前必須讓edittext獲取焦點(diǎn),不然也是無(wú)效的。

如何實(shí)現(xiàn)android EditText允許輸入字母和數(shù)字,同時(shí)默認(rèn)彈出數(shù)字鍵盤(pán)?

這個(gè)問(wèn)題看似簡(jiǎn)單,不過(guò)由于Android輸入法的開(kāi)放性,許多輸入法相關(guān)的參數(shù)設(shè)置是由第三方輸入法來(lái)實(shí)現(xiàn)的,而第三方輸入法眾多、實(shí)現(xiàn)不一,導(dǎo)致這個(gè)問(wèn)題變得很復(fù)雜。

結(jié)論是,目前來(lái)看,并沒(méi)有直接的方法,可以對(duì)所有輸入法實(shí)現(xiàn)上述需求。

不過(guò)針對(duì)這個(gè)問(wèn)題,我們有以下幾種處理方案:

設(shè)置android:digits屬性,允許輸入數(shù)字和字母。

設(shè)置android:inputType為"number",將鍵盤(pán)切換為數(shù)字鍵盤(pán)。

這里的關(guān)鍵是,雖然單獨(dú)設(shè)置android:inputType="number"時(shí),只允許輸入數(shù)字;但同時(shí)設(shè)置android:inputType和android:digits時(shí),允許輸入的字符是以android:digits為準(zhǔn)的。

當(dāng)輸入法本身的UI允許在數(shù)字鍵盤(pán)、字母鍵盤(pán)間切換時(shí),該方案是有效的;但是一些輸入法的數(shù)字鍵盤(pán)不能切換到字母鍵盤(pán),該方案失效;特別是,Android5.0的原生輸入法就是如此,數(shù)字鍵盤(pán)UI沒(méi)有提供切換到其他鍵盤(pán)的按鈕。

雖然該方案對(duì)一些輸入法(尤其是英文輸入法)無(wú)效,但是中文輸入法基本都是有效的。如果APP僅在國(guó)內(nèi)用的,這個(gè)方案夠用了

方案一失效的主要原因是,輸入法界面中沒(méi)有提供切換鍵盤(pán)的按鍵,所以我們可以自己添上按鍵。

帶來(lái)的問(wèn)題是,自己添加按鍵,很難與輸入法保持統(tǒng)一的UI風(fēng)格;而當(dāng)輸入法本身有鍵盤(pán)切換按鍵時(shí),這個(gè)方案是畫(huà)蛇添足,既怪異又不美觀。 所以這個(gè)方案在UI上有嚴(yán)重缺陷,并不實(shí)用。

效果圖如下:

Activity如下:

activity_main.xml如下:

自定義鍵盤(pán)可以徹底解決問(wèn)題,是最完美的方案;但是復(fù)雜度有點(diǎn)高。

默認(rèn)彈出數(shù)字鍵盤(pán)真的有那么重要么?沒(méi)有的話,干脆不要折騰了,StackOverflow上那么多人已經(jīng)證明這個(gè)問(wèn)題無(wú)完美解了。

分享標(biāo)題:android彈出鍵盤(pán),安卓彈出鍵盤(pán)
鏈接URL:http://chinadenli.net/article42/dsiephc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)小程序開(kāi)發(fā)搜索引擎優(yōu)化網(wǎng)站導(dǎo)航標(biāo)簽優(yōu)化關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)