• <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 - 我并不覺的自豪,我所嘗試的事情都失敗了······習慣原本生活的人不容易改變,就算現狀很糟,他們也很難改變,在過程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛傳出去,很困難,也無法預料,人們需要更細心的觀察別人,要隨時注意才能保護別人,因為他們未必知道自己要什么·····

            1.軟鍵盤的顯示原理

            軟鍵盤其實是一個Dialog。InputMethodService為我們的輸入法創建了一個Dialog,并且對某些參數進行了設置,使之能夠在底部 或者全屏顯示。當我們點擊輸入框時,系統會對當前的主窗口進行調整,以便留出相應的空間來顯示該Dialog在底部,或者全屏。

            2.活動主窗口調整
                   Android定義了一個屬性windowSoftInputMode, 用它可以讓程序控制活動主窗口調整的方式。我們可以在配置文件AndroidManifet.xml中對Activity進行設置。這個屬性的設置將會影響兩件事情:
                   1>軟鍵盤的狀態——隱藏或顯示。
                   2>活動的主窗口調整——是否減少活動主窗口大小以便騰出空間放軟鍵盤或是否當活動窗口的部分被軟鍵盤覆蓋時它的內容的當前焦點是可見的。
                   故該屬性的設置必須是下面列表中的一個值,或一個“state…”值加一個“adjust…”值的組合。在任一組設置多個值,各個值之間用|分開。
            "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. 軟鍵盤的狀態(隱藏或可見)沒有被指定。系統將選擇一個合適的狀態或依賴于主題的設置。這個是軟件盤行為的默認設置。
            "stateUnchanged":The soft keyboard is kept in whatever state it was last in, whether visible or hidden, when the activity comes to the fore. 軟鍵盤被保持上次的狀態。
            "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. 當用戶選擇該Activity時,軟鍵盤被隱藏。
            "stateAlwaysHidden":The soft keyboard is always hidden when the activity's main window has input focus. 軟鍵盤總是被隱藏的。
            "stateVisible":The soft keyboard is visible when that's normally appropriate (when the user is navigating forward to the activity's main window). 軟鍵盤是可見的。
            "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. 當用戶選擇這個Activity時,軟鍵盤是可見的。
            "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主窗口調整大小以便留出軟鍵盤的空間,或是否窗口上的內容得到屏幕上當前的焦點是可見的。系統將自動選擇這些模式中一種 主要依賴于是否窗口的內容有任何布局視圖能夠滾動他們的內容。如果有這樣的一個視圖,這個窗口將調整大小,這樣的假設可以使滾動窗口的內容在一個較小的區 域中可見的。這個是主窗口默認的行為設置。也就是說,系統自動決定是采用平移模式還是壓縮模式,決定因素在于內容是否可以滾動。
            "adjustResize":(壓縮模式)The activity's main window is always resized to make room for the soft keyboard on screen. 當軟鍵盤彈出時,要對主窗口調整屏幕的大小以便留出軟鍵盤的空間。
            "adjustPan":(平移模式:當輸入框不會被遮擋時,該模式沒有對布局進行調整,然而當輸入框將要被遮擋時,窗口就會進行平移。也就是說,該模式始終是保持輸入框為可見。)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主窗口并不調整屏幕的大小以便留出軟鍵盤的空間。相反,當前窗口的內容將自動移動以便當前焦點從不被鍵盤覆蓋和用戶能總是看到輸入內容的部分。這個通常是不期望比調整大小,因為用戶可能關閉軟鍵盤以便獲得與被覆蓋內容的交互操作。。
            3.偵聽軟鍵盤的顯示隱藏
                   有時候,借助系統本身的機制來實現主窗口的調整并非我們想要的結果,我們可能希望在軟鍵盤顯示隱藏的時候,手動的對布局進行修改,以便使軟鍵盤彈出時更加美觀。這時就需要對軟鍵盤的顯示隱藏進行偵聽。
                   我們可以借助軟鍵盤顯示和隱藏時,對主窗口進行了重新布局這個特性來進行偵聽。如果我們設置的模式為壓縮模式,那么我們可以對布局的onSizeChanged函數進行跟蹤,如果為平移模式,那么該函數可能不會被調用。

            4.EditText默認不彈出軟件鍵盤
            方法一:
            在AndroidMainfest.xml中選擇哪個activity,設置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失去焦點,使用EditText的clearFocus方法
            例如:EditText edit=(EditText)findViewById(R.id.edit);
                       edit.clearFocus();
            方法三:
            強制隱藏Android輸入法窗口
            例如:EditText edit=(EditText)findViewById(R.id.edit); 
                       InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                       imm.hideSoftInputFromWindow(edit.getWindowToken(),0);

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

                  edit.setInputType(InputType.TYPE_NULL);

            posted on 2012-03-09 20:28 小果子 閱讀(965) 評論(0)  編輯 收藏 引用 所屬分類: Android & Ios
            色综合久久久久网| 99蜜桃臀久久久欧美精品网站| 久久久亚洲精品蜜桃臀| 久久天天躁狠狠躁夜夜不卡| 日日狠狠久久偷偷色综合96蜜桃| 久久SE精品一区二区| 99久久精品免费国产大片| 久久精品综合网| 日韩精品国产自在久久现线拍| 久久国产美女免费观看精品| 久久久久亚洲AV无码永不| 久久免费视频6| 99国产欧美精品久久久蜜芽| 99久久99久久精品国产片果冻| 久久国产精品一区二区| 亚洲成色www久久网站夜月| 欧美激情精品久久久久久| 久久精品国产亚洲av影院| 一级女性全黄久久生活片免费 | 久久99国产综合精品| 伊人久久精品影院| 国产精品久久国产精麻豆99网站| 亚洲人成无码网站久久99热国产| 久久亚洲高清观看| 精品国产乱码久久久久久郑州公司| 久久夜色撩人精品国产| 久久免费小视频| 国产亚洲婷婷香蕉久久精品| 亚洲AV无码成人网站久久精品大| 色偷偷91久久综合噜噜噜噜| 久久精品国产亚洲7777| 亚洲伊人久久大香线蕉苏妲己| 久久久av波多野一区二区| 久久影院综合精品| 97久久天天综合色天天综合色hd| 亚洲国产视频久久| 午夜精品久久久久久| 亚洲国产成人久久综合区| 久久人人青草97香蕉| 久久99精品国产麻豆宅宅| 国产成人精品综合久久久久|