自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android窗口軟鍵盤(pán)調(diào)整的關(guān)鍵:windowSoftInputMode屬性設(shè)置

移動(dòng)開(kāi)發(fā) Android
當(dāng)軟鍵盤(pán)顯示時(shí),窗口會(huì)調(diào)整大小,以便為軟鍵盤(pán)騰出空間。通常意味著窗口的內(nèi)容會(huì)向上移動(dòng),以便為鍵盤(pán)騰出空間。DecorView大小不會(huì)改變,內(nèi)容區(qū)contentView(id = android.R.content)會(huì)相應(yīng)的縮小為鍵盤(pán)騰出空間。

windowSoftInputMode 是 Android 中的一個(gè)屬性,定義了當(dāng)屏幕上有焦點(diǎn)且需要顯示軟鍵盤(pán)(即屏幕鍵盤(pán))時(shí),活動(dòng)(Activity)窗口應(yīng)該如何調(diào)整。屬性位于 AndroidManifest.xml 文件中,針對(duì)每個(gè) <activity> 標(biāo)簽進(jìn)行設(shè)置。

<activity 
    android:name=".MainActivity"
    android:windowSoftInputMode="stateHidden|adjustResize">
</activity>

windowSoftInputMode 有多個(gè)可能的值,可以分為兩類:state 前綴的值和 adjust 前綴的值。

  1. 「state 前綴的值」:

stateUnspecified:軟鍵盤(pán)的默認(rèn)狀態(tài)由系統(tǒng)決定。

stateUnchanged:軟鍵盤(pán)將保持上一次的狀態(tài),無(wú)論是可見(jiàn)還是隱藏。

stateHidden:當(dāng) Activity 被創(chuàng)建時(shí),軟鍵盤(pán)是隱藏的。

stateAlwaysHidden:軟鍵盤(pán)總是隱藏的,即使用戶選擇了一個(gè)需要輸入文本的字段。

stateVisible:當(dāng) Activity 被創(chuàng)建時(shí),軟鍵盤(pán)是可見(jiàn)的。

stateAlwaysVisible:軟鍵盤(pán)總是可見(jiàn)的。

  1. 「adjust 前綴的值」:
  • adjustUnspecified:默認(rèn)調(diào)整方式。系統(tǒng)的選擇取決于屏幕大小和窗口是否可調(diào)整大小。

  • adjustResize:當(dāng)軟鍵盤(pán)顯示時(shí),窗口會(huì)調(diào)整大小,以便為軟鍵盤(pán)騰出空間。這通常意味著窗口的內(nèi)容會(huì)向上移動(dòng),以便為鍵盤(pán)騰出空間。

  • adjustPan:窗口內(nèi)容不會(huì)調(diào)整大小,而是向上平移,以便當(dāng)前獲得焦點(diǎn)的字段不被鍵盤(pán)遮擋。

在AndroidManifest.xml設(shè)置:

<activity 
    android:name=".MainActivity"
    android:windowSoftInputMode="stateHidden|adjustResize">
</activity>

在代碼中設(shè)置:

public class MainActivity extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
    }
}

這些值可以通過(guò) "|" 符號(hào)分隔進(jìn)行組合,在上面的代碼中,stateHidden 和 adjustResize 被組合在一起使用。

windowSoftInputMode 常用的屬性有 adjustPan,adjustResize,adjustNothing

adjustPan

窗口內(nèi)容不會(huì)調(diào)整大小,而是向上平移,以便當(dāng)前獲得焦點(diǎn)的字段不被鍵盤(pán)遮擋。Activity窗口(DecorView)大小不變。當(dāng)獲取到焦點(diǎn)的EditText位于屏幕下方,軟鍵盤(pán)彈出會(huì)遮擋到EditText時(shí),整個(gè)DecorView會(huì)往上移動(dòng),至于上移多少并不確定。一般是上移至使EditText剛好不被軟鍵盤(pán)遮擋住為止。

圖片圖片

adjustResize

當(dāng)軟鍵盤(pán)顯示時(shí),窗口會(huì)調(diào)整大小,以便為軟鍵盤(pán)騰出空間。通常意味著窗口的內(nèi)容會(huì)向上移動(dòng),以便為鍵盤(pán)騰出空間。DecorView大小不會(huì)改變,內(nèi)容區(qū)contentView(id = android.R.content)會(huì)相應(yīng)的縮小為鍵盤(pán)騰出空間。

圖片圖片

注意:adjustResize只是調(diào)整contentView的大小,所以還是有可能覆蓋掉EditText。

adjustNothing

Activity窗口不會(huì)做任何調(diào)整,contentView大小也不會(huì)改變。

責(zé)任編輯:武曉燕 來(lái)源: 沐雨花飛蝶
相關(guān)推薦

2017-07-03 17:20:55

Android軟鍵盤(pán)控制開(kāi)發(fā)問(wèn)題

2009-08-21 13:25:49

C#打開(kāi)軟鍵盤(pán)

2013-06-27 17:26:01

AndroidEditText

2021-08-07 15:31:45

Windows 10Windows微軟

2017-12-05 15:26:19

2017-12-05 13:12:35

Android軟鍵盤(pán)參數(shù)

2024-03-06 09:16:57

PAD設(shè)備kikaInput鴻蒙

2020-03-24 09:34:00

移動(dòng)端H5軟鍵盤(pán)

2021-07-13 09:49:08

鴻蒙HarmonyOS應(yīng)用

2019-04-25 10:20:22

H5軟鍵盤(pán)前端

2013-04-01 17:05:28

2021-02-20 22:15:44

Android 代碼操作系統(tǒng)

2009-04-15 08:18:44

AndroidGoogle移動(dòng)OS

2019-08-05 08:02:31

AI 數(shù)據(jù)人工智能

2013-05-14 10:27:46

Android開(kāi)發(fā)設(shè)置程序?qū)傩?/a>

2022-04-26 10:41:46

Android游戲開(kāi)發(fā)工具

2009-05-07 17:24:05

Android 1.5CupcakeAndroid

2009-05-13 08:37:10

GoogleAndroid移動(dòng)OS

2011-06-03 14:04:11

Android

2012-07-11 09:21:35

Windows Pho
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)