精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

Android使用Activity實現簡單的可輸入對話框

1、需求分析

成都一家集口碑和實力的網站建設服務商,擁有專業的企業建站團隊和靠譜的建站技術,十年企業及個人網站建設經驗 ,為成都上千多家客戶提供網頁設計制作,網站開發,企業網站制作建設等服務,包括成都營銷型網站建設,高端網站設計,同時也為不同行業的客戶提供網站設計、做網站的服務,包括成都電商型網站制作建設,裝修行業網站制作建設,傳統機械行業網站建設,傳統農業行業網站制作建設。在成都做網站,選網站制作建設服務商就選創新互聯公司

眾所周知,在應用中這樣那樣的評論總是少不了的,有的應用是在底部直接加一個EditText和一個Button,讓用戶輸入文字或者表情之后點擊按鈕提交;而有的雖然也放置了EditText,但僅僅是一個“擺設”,并不具備輸入功能,用戶點擊它后會彈出一個跳轉到一個可以真正編輯的頁面或者彈出一個可以輸入內容的對話框。

比如下面這種效果:

Android使用Activity實現簡單的可輸入對話框

這里的效果可以細分為四點:

  • 點擊底部的按鈕之后會彈出對話框,對話框在布局的底部;
  • 對話框中有輸入框EditText,可以輸入內容;
  • 對話框彈出后EditText會自動獲取焦點,彈出軟鍵盤;
  • 軟鍵盤會把對話框頂上去,便于用戶編輯。

一開始我想到的是PopupWindow,但是由于里面有EditText,與軟鍵盤交互起來很是頭疼,于是改用了Activity。這樣一來我們就可以像用Activity一樣使用這個對話框,方便多了。不過畢竟跟我們平時使用的Activity還是有所不同的,特別是要設置好它的樣式,否則也是一堆的坑啊。

2、對話框Activity的布局與樣式

下面就來著手實現我們想要的對話框了。新建一個工程,MainActivity只是一個配角,底部放一個按鈕就搞定。我們的主角是DialogActivity,它的布局很簡單,就跟平時的Activity一樣:

<?xml version="1.0" encoding="utf-8"?>

 

 

 

重點是它的樣式,看下面的代碼:

 
 

要設置的屬性很多,我都做了注釋了,大家明白每個屬性的作用就行,這里就細說了。別忘了,到清單文件中給DialogActivity用上這個主題:

 

運行一下,相信大家可以看到效果了。

3、自動彈出軟鍵盤效果

對話框的界面我們已經做好了,但是為了用戶體驗更好,我們要在對話框出現的時候自動彈出軟鍵盤。下面介紹兩種方法:

3.1、使用InputMethodManager類顯示軟鍵盤

我們平時要讓某個EditText獲得焦點自動彈出軟鍵盤可以這樣寫:

 InputMethodManager inputManager =(InputMethodManager)etComment.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
 inputManager.showSoftInput(etComment, 0);

但是這里面有一點要注意:我們想要讓EditText獲得焦點,那必須等界面繪制完畢才行。所以這樣設置了延遲300ms執行彈出軟鍵盤的代碼,給界面留出繪制的時間:

 new Handler(new Handler.Callback() {
  @Override
  public boolean handleMessage(Message msg) {
  InputMethodManager inputManager =
   (InputMethodManager) etComment.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
  inputManager.showSoftInput(etComment, 0);
  return false;
  }
 }).sendEmptyMessageDelayed(0, 300);

加上上面的代碼,你就可以軟鍵盤自己彈出來了。

3.1、設置windowSoftInputMode屬性

你如果細心的話一定發現前面給DialogActivity設置樣式的代碼中有一個windowSoftInputMode屬性沒有添加注釋,請原諒我賣了個關子。這個屬性是設置窗口和軟鍵盤的交互模式的。它的屬性有很多,可以參考我后面給出的參考文章。這里我們用到了adjustResize,它的作用就是調整界面布局給軟鍵盤留出足夠的空間。那么stateHidden呢?其實軟鍵盤沒有自動彈出就是它搞的鬼,它表示一般情況下軟鍵盤都是隱藏的。我們改成另外一個屬性:stateVisible,它表示軟鍵盤通常是可見的。

再來運行一下,軟鍵盤就如期而至了。

4、后記

我們在需求分析中提到的效果已經實現完畢。后來我還想過給對話框增加自定義的動畫效果,但是退出時的動畫始終沒有設置成功,所以如果有讀者實現了,歡迎交流學習。

源碼我保存到了碼云,需要的話可以參考:可輸入對話框源碼

大家也可以通過本地下載:點擊這里

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對創新互聯的支持。

5、參考文章

android:windowSoftInputMode屬性詳解

徹底搞定Android開發中軟鍵盤的常見問題


網頁名稱:Android使用Activity實現簡單的可輸入對話框
URL分享:http://m.jcarcd.cn/article/iisidh.html
主站蜘蛛池模板: 国产永久观看在线 | 福利在线导航网 | 国产老熟女狂 | 欧美日韩精品一区 | 日韩经典第一页 | 国产系列亚洲精品 | 成人年鲁鲁在线观 | 91蝌蚪91九色 | 日本免费一级视频 | 日本天堂视频在 | 国产精品国色 | 国产午夜激情视频 | 日本欧美日韩视 | 日韩aⅴ在线观看 | 日韩性爱官方网站 | 91福利精品电影 | 国产欧美自拍日韩 | 国产亚洲制服免视频 | 国产又滑又嫩又白 | 国产卡二卡三卡四卡 | 国产精品九九 | 国产精美 | 日韩毛A | 人人九九精品 | 无码精品国产第一区二区 | 国产精品色片免费 | 欧美日韩国产视频 | 午夜福利免费 | 国产精品久片在 | 精品免费人成视 | 91福利社区视频 | 日本精品一卡高清 | 国产欧美一区二区三 | 中文字幕日韩综合网 | 国语对白清晰 | 国产在线观看h尤 | 人摸人摸在线视频 | 99爱这里只有精品 | 韩国伦理电影网站 | 国产wwwwwww | 91精品成人影院 |