0518開發(fā)(軟鍵盤 EditText相關(guān))

感謝開發(fā)者 有的當(dāng)時保存的時候沒有保存連接如果侵權(quán)聯(lián)系刪除


留給后來者,只設(shè)置底部邊框的方法,在drawable里新建xml艘蹋,選擇 layer-list 领虹,代碼如下靡砌,稍作修改后的代碼:

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- 連框顏色值 -->
    <item>
        <shape>
            <solid android:color="#000000" />
        </shape>
    </item>
    <!-- 主體背景顏色值 -->
   <item android:bottom="1dp"> <!--設(shè)置只有底部有邊框-->
        <shape>
            <solid android:color="#ffffff" />
        </shape>
    </item>
</layer-list>

viewpager 包裹內(nèi)容

http://stackoverflow.com/questions/8394681/android-i-am-unable-to-have-viewpager-wrap-content

監(jiān)聽軟鍵盤彈起

**背景:**
在很多App開發(fā)過程中需要在Activity中監(jiān)聽[Android](http://lib.csdn.net/base/android)設(shè)備的軟鍵盤彈起與關(guān)閉,但是Android似乎沒有提供相關(guān)的的監(jiān)聽API給我們來調(diào)用锋边,本文提供了一個可行的辦法來監(jiān)聽軟鍵盤的彈起與關(guān)閉用押。

**預(yù)備知識:**
在manifest文件中可以設(shè)置Activity的android:windowSoftInputMode屬性疯坤,這個屬性值常見的設(shè)置如下:
android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
那么這里值的含義列表如下:

【A】stateUnspecified:軟鍵盤的狀態(tài)并沒有指定报慕,系統(tǒng)將選擇一個合適的狀態(tài)或依賴于主題的設(shè)置
【B】stateUnchanged:當(dāng)這個activity出現(xiàn)時,軟鍵盤將一直保持在上一個activity里的狀態(tài)压怠,無論是隱藏還是顯示
【C】stateHidden:用戶選擇activity時眠冈,軟鍵盤總是被隱藏
【D】stateAlwaysHidden:當(dāng)該Activity主窗口獲取焦點時,軟鍵盤也總是被隱藏的
【E】stateVisible:軟鍵盤通常是可見的
【F】stateAlwaysVisible:用戶選擇activity時菌瘫,軟鍵盤總是顯示的狀態(tài)
【G】adjustUnspecified:默認(rèn)設(shè)置蜗顽,通常由系統(tǒng)自行決定是隱藏還是顯示
【H】adjustResize:該Activity總是調(diào)整屏幕的大小以便留出軟鍵盤的空間
【I】adjustPan:當(dāng)前窗口的內(nèi)容將自動移動以便當(dāng)前焦點從不被鍵盤覆蓋和用戶能總是看到輸入內(nèi)容的部分

**示例:**
(1)首先我們需要將監(jiān)聽所在的Activity在Manifest文件中的設(shè)置為如下形式:

**[html]** [view plain](http://blog.csdn.net/bear_huangzhen/article/details/45896333#) [copy](http://blog.csdn.net/bear_huangzhen/article/details/45896333#)

<activity  
    android:name="com.bear.softkeyboardlistener.MainActivity"  
    android:label="@string/app_name"  
    android:windowSoftInputMode="stateAlwaysHidden|adjustResize" >  
    <intent-filter>  
        <action android:name="android.intent.action.MAIN" />  
  
        <category android:name="android.intent.category.LAUNCHER" />  
    </intent-filter>  
</activity>  

這樣設(shè)置之后,當(dāng)有軟鍵盤彈起來的時候突梦,Activity的布局大小會被壓縮上去,但是你仍然可以通過滑動瀏覽所有羽利。

(2)我們要為Activity的最外面的Layout設(shè)置一個OnLayoutChangeListener監(jiān)聽器:
**[java]** [view plain](http://blog.csdn.net/bear_huangzhen/article/details/45896333#) [copy](http://blog.csdn.net/bear_huangzhen/article/details/45896333#)
 [![在CODE上查看代碼片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/672332)[![派生到我的代碼片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/672332/fork)

import com.bear.bearbroadcastreceiver.R;  
  
import android.app.Activity;  
import android.os.Bundle;  
import android.view.View;  
import android.view.View.OnLayoutChangeListener;  
import android.widget.Toast;  
  
public class MainActivity extends Activity implements OnLayoutChangeListener{  
      
    //Activity最外層的Layout視圖  
    private View activityRootView;  
    //屏幕高度  
    private int screenHeight = 0;  
    //軟件盤彈起后所占高度閥值  
    private int keyHeight = 0;  
      
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
  
        activityRootView = findViewById(R.id.root_layout);  
        //獲取屏幕高度  
        screenHeight = this.getWindowManager().getDefaultDisplay().getHeight();  
        //閥值設(shè)置為屏幕高度的1/3  
        keyHeight = screenHeight/3;  
    }  
      
    @Override  
    protected void onResume() {  
        super.onResume();  
          
        //添加layout大小發(fā)生改變監(jiān)聽器  
        activityRootView.addOnLayoutChangeListener(this);  
    }  
      
    @Override  
    public void onLayoutChange(View v, int left, int top, int right,  
            int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {  
          
        //old是改變前的左上右下坐標(biāo)點值宫患,沒有old的是改變后的左上右下坐標(biāo)點值  
          
//      System.out.println(oldLeft + " " + oldTop +" " + oldRight + " " + oldBottom);  
//      System.out.println(left + " " + top +" " + right + " " + bottom);  
          
          
        //現(xiàn)在認(rèn)為只要控件將Activity向上推的高度超過了1/3屏幕高,就認(rèn)為軟鍵盤彈起  
        if(oldBottom != 0 && bottom != 0 &&(oldBottom - bottom > keyHeight)){  
              
            Toast.makeText(MainActivity.this, "監(jiān)聽到軟鍵盤彈起...", Toast.LENGTH_SHORT).show();  
          
        }else if(oldBottom != 0 && bottom != 0 &&(bottom - oldBottom > keyHeight)){  
              
            Toast.makeText(MainActivity.this, "監(jiān)聽到軟件盤關(guān)閉...", Toast.LENGTH_SHORT).show();  
          
        }  
          
    } 

EditText屬性的設(shè)置

在開發(fā)的過程中这弧,通常會用到EditText娃闲,如何讓虛擬鍵盤來適應(yīng)輸入框中內(nèi)容的類型,通常我們都會在xml文件中加入android:inputType=""匾浪。

android:inputType="none"android:inputType="text"android:inputType="textCapCharacters"http://前3個輸入普通字符android:inputType="textCapWords"http://單詞首字母大小

android:inputType="textCapSentences"http://僅第一個字母大小

android:inputType="textAutoCorrect"android:inputType="textAutoComplete"http://前兩個自動完成

android:inputType="textMultiLine"http://多行輸入

android:inputType="textImeMultiLine"http://輸入法多行(不一定支持)

android:inputType="textNoSuggestions"http://不提示

android:inputType="textUri"http://URI格式

android:inputType="textEmailAddress"http://電子郵件地址格式

android:inputType="textEmailSubject"http://郵件主題格式

android:inputType="textShortMessage"http://短消息格式

android:inputType="textLongMessage"android:inputType="textPersonName"http://人名格式

android:inputType="textPostalAddress"http://郵政格式

android:inputType="textPassword"http://密碼格式

android:inputType="textVisiblePassword"http://密碼可見格式

android:inputType="textWebEditText"http://作為網(wǎng)頁表單的文本格式

android:inputType="textFilter"http://文本篩選格式

android:inputType="textPhonetic"http://拼音輸入格式

android:inputType="number"http://數(shù)字格式

android:inputType="numberSigned"http://有符號數(shù)字格式

android:inputType="numberDecimal"http://可以帶小數(shù)點的浮點格式

android:inputType="phone"http://撥號鍵盤

android:inputType="datetime"android:inputType="date"http://日期鍵盤

android:inputType="time"http://時間鍵盤

這個幫助很大

image.png
http://blog.csdn.net/jeff169/article/details/70195498?utm_source=itdadao&utm_medium=referral

Edittext默認(rèn)不獲取焦點

剛進(jìn)來的時候皇帮,不彈出鍵盤,EditText 有個光標(biāo)上面閃蛋辈,證明是可編輯的属拾,這個還是符合用戶習(xí)慣的,從用戶體驗的角度上講冷溶,還保留光標(biāo)的閃動是好的渐白。
解決方法1:(已經(jīng)試過,證明可以)
在activity屬性中設(shè)置[Android](http://lib.csdn.net/base/android):windowSoftInputMode="stateHidden"
解決方法2:
InputMethodManager inputMethodManager = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE);inputMethodManager.hideSoftInputFromWindow(et.getWindowToken(), 0);
解決方法3:
系統(tǒng)默認(rèn)第一個EditText是獲得焦點的逞频,解決辦法纯衍,增加一個不顯示的view強制獲得焦點,比如<View android:layout_width="0dip"android:layout_height="0dip"android:focusableInTouchMode="true" />
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苗胀,一起剝皮案震驚了整個濱河市襟诸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌基协,老刑警劉巖歌亲,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異澜驮,居然都是意外死亡应结,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鹅龄,“玉大人揩慕,你說我怎么就攤上這事“缧荩” “怎么了迎卤?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長玷坠。 經(jīng)常有香客問我蜗搔,道長,這世上最難降的妖魔是什么八堡? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任樟凄,我火速辦了婚禮,結(jié)果婚禮上兄渺,老公的妹妹穿的比我還像新娘缝龄。我一直安慰自己,他們只是感情好挂谍,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布叔壤。 她就那樣靜靜地躺著,像睡著了一般口叙。 火紅的嫁衣襯著肌膚如雪炼绘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天妄田,我揣著相機與錄音俺亮,去河邊找鬼。 笑死疟呐,一個胖子當(dāng)著我的面吹牛铅辞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播萨醒,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼斟珊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了富纸?” 一聲冷哼從身側(cè)響起囤踩,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎晓褪,沒想到半個月后堵漱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡涣仿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年勤庐,在試婚紗的時候發(fā)現(xiàn)自己被綠了示惊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡愉镰,死狀恐怖米罚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情丈探,我是刑警寧澤录择,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站碗降,受9級特大地震影響隘竭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜讼渊,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一动看、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧爪幻,春花似錦菱皆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽霹期。三九已至叶组,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間历造,已是汗流浹背甩十。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吭产,地道東北人侣监。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像臣淤,于是被迫代替她去往敵國和親橄霉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容