• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            xiaoguozi's Blog
            Pay it forword - 我并不覺(jué)的自豪,我所嘗試的事情都失敗了······習(xí)慣原本生活的人不容易改變,就算現(xiàn)狀很糟,他們也很難改變,在過(guò)程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛(ài)傳出去,很困難,也無(wú)法預(yù)料,人們需要更細(xì)心的觀察別人,要隨時(shí)注意才能保護(hù)別人,因?yàn)樗麄兾幢刂雷约阂裁础ぁぁぁぁ?/span>

            1.軟鍵盤(pán)的顯示原理

            軟鍵盤(pán)其實(shí)是一個(gè)Dialog。InputMethodService為我們的輸入法創(chuàng)建了一個(gè)Dialog,并且對(duì)某些參數(shù)進(jìn)行了設(shè)置,使之能夠在底部 或者全屏顯示。當(dāng)我們點(diǎn)擊輸入框時(shí),系統(tǒng)會(huì)對(duì)當(dāng)前的主窗口進(jìn)行調(diào)整,以便留出相應(yīng)的空間來(lái)顯示該Dialog在底部,或者全屏。

            2.活動(dòng)主窗口調(diào)整
                   Android定義了一個(gè)屬性windowSoftInputMode, 用它可以讓程序控制活動(dòng)主窗口調(diào)整的方式。我們可以在配置文件AndroidManifet.xml中對(duì)Activity進(jìn)行設(shè)置。這個(gè)屬性的設(shè)置將會(huì)影響兩件事情:
                   1>軟鍵盤(pán)的狀態(tài)——隱藏或顯示。
                   2>活動(dòng)的主窗口調(diào)整——是否減少活動(dòng)主窗口大小以便騰出空間放軟鍵盤(pán)或是否當(dāng)活動(dòng)窗口的部分被軟鍵盤(pán)覆蓋時(shí)它的內(nèi)容的當(dāng)前焦點(diǎn)是可見(jiàn)的。
                   故該屬性的設(shè)置必須是下面列表中的一個(gè)值,或一個(gè)“state…”值加一個(gè)“adjust…”值的組合。在任一組設(shè)置多個(gè)值,各個(gè)值之間用|分開(kāi)。
            "stateUnspecified":The state of the soft keyboard (whether it is hidden or visible) is not specified. The system will choose an appropriate state or rely on the setting in the theme. This is the default setting for the behavior of the soft keyboard. 軟鍵盤(pán)的狀態(tài)(隱藏或可見(jiàn))沒(méi)有被指定。系統(tǒng)將選擇一個(gè)合適的狀態(tài)或依賴于主題的設(shè)置。這個(gè)是軟件盤(pán)行為的默認(rèn)設(shè)置。
            "stateUnchanged":The soft keyboard is kept in whatever state it was last in, whether visible or hidden, when the activity comes to the fore. 軟鍵盤(pán)被保持上次的狀態(tài)。
            "stateHidden":The soft keyboard is hidden when the user chooses the activity — that is, when the user affirmatively navigates forward to the activity, rather than backs into it because of leaving another activity. 當(dāng)用戶選擇該Activity時(shí),軟鍵盤(pán)被隱藏。
            "stateAlwaysHidden":The soft keyboard is always hidden when the activity's main window has input focus. 軟鍵盤(pán)總是被隱藏的。
            "stateVisible":The soft keyboard is visible when that's normally appropriate (when the user is navigating forward to the activity's main window). 軟鍵盤(pán)是可見(jiàn)的。
            "stateAlwaysVisible":The soft keyboard is made visible when the user chooses the activity — that is, when the user affirmatively navigates forward to the activity, rather than backs into it because of leaving another activity. 當(dāng)用戶選擇這個(gè)Activity時(shí),軟鍵盤(pán)是可見(jiàn)的。
            "adjustUnspecified":It is unspecified whether the activity's main window resizes to make room for the soft keyboard, or whether the contents of the window pan to make the currentfocus visible on-screen. The system will automatically select one of these modes depending on whether the content of the window has any layout views that can scroll their contents. If there is such a view, the window will be resized, on the assumption that scrolling can make all of the window's contents visible within a smaller area. This is the default setting for the behavior of the main window. 它不被指定是否該Activity主窗口調(diào)整大小以便留出軟鍵盤(pán)的空間,或是否窗口上的內(nèi)容得到屏幕上當(dāng)前的焦點(diǎn)是可見(jiàn)的。系統(tǒng)將自動(dòng)選擇這些模式中一種 主要依賴于是否窗口的內(nèi)容有任何布局視圖能夠滾動(dòng)他們的內(nèi)容。如果有這樣的一個(gè)視圖,這個(gè)窗口將調(diào)整大小,這樣的假設(shè)可以使?jié)L動(dòng)窗口的內(nèi)容在一個(gè)較小的區(qū) 域中可見(jiàn)的。這個(gè)是主窗口默認(rèn)的行為設(shè)置。也就是說(shuō),系統(tǒng)自動(dòng)決定是采用平移模式還是壓縮模式,決定因素在于內(nèi)容是否可以滾動(dòng)。
            "adjustResize":(壓縮模式)The activity's main window is always resized to make room for the soft keyboard on screen. 當(dāng)軟鍵盤(pán)彈出時(shí),要對(duì)主窗口調(diào)整屏幕的大小以便留出軟鍵盤(pán)的空間。
            "adjustPan":(平移模式:當(dāng)輸入框不會(huì)被遮擋時(shí),該模式?jīng)]有對(duì)布局進(jìn)行調(diào)整,然而當(dāng)輸入框?qū)⒁徽趽鯐r(shí),窗口就會(huì)進(jìn)行平移。也就是說(shuō),該模式始終是保持輸入框?yàn)榭梢?jiàn)。)The activity's main window is not resized to make room for the soft keyboard. Rather, the contents of the window are automatically panned so that the current focus is never obscured by the keyboard and users can always see what they are typing. This is generally less desirable than resizing, because the user may need to close the soft keyboard to get at and interact with obscured parts of the window. 該Activity主窗口并不調(diào)整屏幕的大小以便留出軟鍵盤(pán)的空間。相反,當(dāng)前窗口的內(nèi)容將自動(dòng)移動(dòng)以便當(dāng)前焦點(diǎn)從不被鍵盤(pán)覆蓋和用戶能總是看到輸入內(nèi)容的部分。這個(gè)通常是不期望比調(diào)整大小,因?yàn)橛脩艨赡荜P(guān)閉軟鍵盤(pán)以便獲得與被覆蓋內(nèi)容的交互操作。。
            3.偵聽(tīng)軟鍵盤(pán)的顯示隱藏
                   有時(shí)候,借助系統(tǒng)本身的機(jī)制來(lái)實(shí)現(xiàn)主窗口的調(diào)整并非我們想要的結(jié)果,我們可能希望在軟鍵盤(pán)顯示隱藏的時(shí)候,手動(dòng)的對(duì)布局進(jìn)行修改,以便使軟鍵盤(pán)彈出時(shí)更加美觀。這時(shí)就需要對(duì)軟鍵盤(pán)的顯示隱藏進(jìn)行偵聽(tīng)。
                   我們可以借助軟鍵盤(pán)顯示和隱藏時(shí),對(duì)主窗口進(jìn)行了重新布局這個(gè)特性來(lái)進(jìn)行偵聽(tīng)。如果我們?cè)O(shè)置的模式為壓縮模式,那么我們可以對(duì)布局的onSizeChanged函數(shù)進(jìn)行跟蹤,如果為平移模式,那么該函數(shù)可能不會(huì)被調(diào)用。

            4.EditText默認(rèn)不彈出軟件鍵盤(pán)
            方法一:
            在AndroidMainfest.xml中選擇哪個(gè)activity,設(shè)置windowSoftInputMode屬性為adjustUnspecified|stateHidden
            例如:<activity android:name=".Main"
                              android:label="@string/app_name"
                              android:windowSoftInputMode="adjustUnspecified|stateHidden"
                              android:configChanges="orientation|keyboardHidden">
                        <intent-filter>
                            <action android:name="android.intent.action.MAIN" />
                            <category android:name="android.intent.category.LAUNCHER" />
                        </intent-filter>
                    </activity>
            方法二:
            讓EditText失去焦點(diǎn),使用EditText的clearFocus方法
            例如:EditText edit=(EditText)findViewById(R.id.edit);
                       edit.clearFocus();
            方法三:
            強(qiáng)制隱藏Android輸入法窗口
            例如:EditText edit=(EditText)findViewById(R.id.edit); 
                       InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                       imm.hideSoftInputFromWindow(edit.getWindowToken(),0);

            5.EditText始終不彈出軟件鍵盤(pán)
            例:EditText edit=(EditText)findViewById(R.id.edit);
             

                  edit.setInputType(InputType.TYPE_NULL);

            posted on 2012-03-09 20:28 小果子 閱讀(970) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Android & Ios
            精品人妻伦九区久久AAA片69| 久久精品亚洲精品国产色婷| 久久精品?ⅴ无码中文字幕| 久久97久久97精品免视看| 久久亚洲日韩看片无码| 久久精品成人免费看| 久久无码AV中文出轨人妻| 国产精品99久久久久久人| 久久久久久久久久免免费精品 | 精品久久久久久中文字幕人妻最新| 精品久久人人爽天天玩人人妻| 亚洲AV无码久久寂寞少妇| 久久综合九色综合久99| 久久精品这里热有精品| 久久精品国产亚洲AV影院| 久久丝袜精品中文字幕| 久久精品国产精品青草app| 狠狠综合久久AV一区二区三区| 国产免费福利体检区久久| 国产精品无码久久综合| 综合网日日天干夜夜久久| 久久精品免费大片国产大片| 久久Av无码精品人妻系列| 久久精品国产日本波多野结衣| 久久久WWW成人免费精品| 欧美伊香蕉久久综合类网站| 99国产精品久久久久久久成人热| 国产成人精品三上悠亚久久| 国产欧美久久久精品影院| 综合久久一区二区三区 | 久久se这里只有精品| 久久精品一区二区三区不卡| 99久久99久久| 国产99久久久久久免费看| 国产成人精品久久综合| 久久99精品久久久久久齐齐| 激情久久久久久久久久| 久久性精品| 日日噜噜夜夜狠狠久久丁香五月| 久久久无码精品亚洲日韩蜜臀浪潮| 人妻少妇久久中文字幕|