andriod 自定義軟鍵盤及解決遮擋文字框問題
首先建立鍵盤框架檔案:numskeys.xml對應的按鍵數字對應相應的ASII碼,按鍵寬度和按鍵高度按照百分比設定。對應按鍵的功能寫在XMLKeysUtils工具類中,對應按鍵功能寫在onKey方法裡,遍歷陣列或者if…else…語句完成。
drawable資料夾下有keys_board_selector.xml、keys_normal_shape.xml、keys_pressed_shape.xml檔案,keys_board_selector.xml檔案將後兩個檔案聯絡到一起,設定觸發狀態,<item />類似於if語句,當不按下按鍵時顯示normal狀態,當按下時顯示
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/keys_pressed_shape"/>
<item android:drawable="@drawable/keys_normal_shape"/>
</selector>
layout資料夾下包含key_board_view.xml、
android:keyPreviewLayout="@layout/key_preview_layout"
key_display_view.xml檔案將鍵盤(key_board_view.xml)上繫結一個editText控制元件,用於顯示鍵盤上輸入的資訊。
spec_layout.xml檔案將鍵盤與
有必要先闡述一下如何理解的隱藏鍵盤,本人新手入門這可能是一種超級low的方法:為了隱藏鍵盤,我一開始想的是能不能把系統內建鍵盤替換掉,然後在github上找例子看,就做成了把鍵盤和頁面寫在一個佈局裡,預設介面下隱藏的鍵盤介面,然後在點選editText時候顯示鍵盤,為了區別這個介面上的editText和鍵盤上帶的那個editText,將鍵盤上的editText記為showText。點選editText時,繫結到showText上,關閉隱藏系統自帶鍵盤,顯示自定義軟鍵盤。按確定鍵時將showText內容寫到editText上,取消鍵時候隱藏軟鍵盤。
遇到的問題:
- 點選editText時而顯示自定義軟鍵盤時而顯示系統自帶鍵盤,於是將禁用系統自帶鍵盤的語句,從螢幕的點選監聽事件移到了自定義鍵盤的建構函式後。然後是點選自定義鍵盤需要點選兩下才能顯示鍵盤,找到原因是editext寫的是OnClickListener(),改為setOnTouchListener()就可以在觸控的時候編輯其他editText的資訊。
- 自定義鍵盤顯示後遮住了下排的editText文字框,要想輸入還需要先關閉鍵盤在點選。想要實現鍵盤彈出自動上升,不遮擋功能。部落格大佬寫的好像都是解決系統自帶鍵盤遮住文字框的問題,沒找到合適方案,不過這個部落格很具有參考價值。http://www.cnblogs.com/loaderman/p/6912736.html 想了個笨方法,將TableLayout外巢狀一個LinerLayout,外面加上ScrollView。將ScrollView和鍵盤以及showText按照layout_weight佔比方式,算出ScrollView在鍵盤和showText顯示時候所佔螢幕的高度大小,然後效果是鍵盤顯示時候能手動滾動ScrollView裡面的TableLayout,然後輸入,但是沒有實現自動上升。解決辦法是是將scrollView物件與佈局繫結,if(點選的是會被擋住的editText)則呼叫下面語句,將scrollView自動滑上去。
scrollView.fullScroll(ScrollView.FOCUS_DOWN)
佈局時候注意layout_gravity和gravity的區別和生效條件。
相關推薦
andriod 自定義軟鍵盤及解決遮擋文字框問題
首先建立鍵盤框架檔案:numskeys.xml對應的按鍵數字對應相應的ASII碼,按鍵寬度和按鍵高度按照百分比設定。對應按鍵的功能寫在XMLKeysUtils工具類中,對應按鍵功能寫在onKey方法裡,遍歷陣列或者if…else…語句完成。 drawabl
仿美團簡訊驗證碼輸入框 + 自定義軟鍵盤
KeyboardDemo 自定義簡訊驗證碼輸入框 + 自定義數字字母軟鍵盤 前段時間做了一個需求,類似驗證碼輸入框,但輸入的優惠碼有數字和大小寫字母,所以就需要用到自定義軟鍵盤,不然總是切換數字與字母太麻煩,使用者體驗不佳。 剛開始想著到網上找一些demo得了,可i
IOS 自定義軟鍵盤功能,修改換行鍵為傳送鍵
IOS專案是使用混合模式開發,在開發聊天功能時;發現軟鍵盤不能像QQ、微信那樣,換行鍵不能變為傳送;網上說是因為輸入框類別導致;嘗試過以後,還是不行;然後想到用IOS native解決; 先說一下,原生APP 設定軟鍵盤換行鍵為傳送鍵: textField.returnKeyType = U
Android自定義軟鍵盤樣式:字母、數字、標點三種切換
第一次寫,直接上程式碼吧: 先看效果圖: 1.在需要的呼叫軟鍵盤的activity_mian.xml中加入鍵盤控制元件 <!--自定義鍵盤控制元件--> <RelativeLayout android:layout_width="fill
自定義軟鍵盤,隨機數字位置鍵盤
簡介 今天在掘金上看了一篇文章,實現自定義軟鍵盤,發現其實實現方式比較簡單,不需要改動系統api,只是單純的載入自己的鍵盤佈局,隱藏系統彈出的鍵盤,實現數字錯位,安全輸入軟鍵盤,記錄一下實現過程用於總結 實現 <?xml version=
Android 自定義軟鍵盤
package com.huyu.test; import java.lang.reflect.Method; import java.util.Arrays; import java.util.List; import android.app.Activity; import android.input
Android自定義軟鍵盤輸入法,隱藏系統輸入法顯示游標的實現
android實現自定義軟鍵盤,先上圖看效果,效果基本上是仿ios輸入法實現的 這裡是實現隱藏系統輸入法,同時讓EditText能獲取游標的程式碼部分(通過反射呼叫): <span style="font-size:18px;">keyBoardLabe
自定義軟鍵盤 EditText游標問題
自定義軟鍵盤 游標問題 使用自定義鍵盤的時候 為了隱藏系統的軟鍵盤 使用了editText.setInputType editText .setInputType(InputType.TYPE_NULL); 但會導致EditText游標不顯示 不閃爍
Android自定義軟鍵盤KeyboardView 使用例項
在有些應用中會有定製軟鍵盤的需求,往往實現起來會有些難度,或者說實現出來的效果不盡如人意。 最近在專案中有這種需求 博主也是不辱使命地完成了這個需求,效果圖如下 說一下思路的和詳細實現 主要是利用android自帶的android.inputme
Android 自定義軟鍵盤遇到的問題
首先來分析一下軟鍵盤的基本屬性 - 軟鍵盤的實現 - 點選輸入框從底部彈出軟鍵盤 - 彈出軟鍵盤後焦點在輸入框 - 彈出軟鍵盤不遮擋輸入框 軟鍵盤的實現 可以使用KeyboardView也可以自己寫佈局寫點選事件(除特殊情況不推薦)
Android使用xml自定義軟鍵盤效果(附原始碼)
Android使用xml自定義軟鍵盤效果原理: 1,軟鍵盤其實是個控制元件,使用android.inputmethodserver.KeyboardView類定義。 2,主佈局中使用幀佈局,當我們需要顯示軟鍵盤時設定為可見,不需要時設定為不可見。 3,編寫
十一月專案小結(實現自定義底部以及自適應軟鍵盤Dialog)
自定義Dialog 自定義CustomDialog繼承父類Dialog //style:自定義Dialog樣式 public CustomDialog(Activity activity , int style) { super(activity,sty
android 自定義相機旋轉問題解決及照片自動旋轉問題解決
//自動旋轉180情況下 myCamera = Camera.open(); myCamera .setDisplayOrientation(180); //圖片旋轉180情況下解決方法 par
Spring 和 java 反射及自定義註解的問題解決!!
我想做一個將 使用者操作記錄儲存到資料庫的功能,利用java 的反射和自定義annotation 來實現,具體程式碼如下: 自定義annotation 類: package com.util; import java.lang.annotation.Documented;
html5自定義數字鍵盤
blog this cal pre pan initial class function type 原理:使用div模擬輸入框,避免手機原生鍵盤彈出,鍵盤使用div模擬,點擊事件使用js控制,光標閃爍使用css模擬,具體代碼如下: 1 <!doctype html
nginx自定義站點目錄及簡單編寫開發網頁內容講解
linux[[email protected]/* */ conf]# egrep -v "^$|#" nginx.conf.default >nginx.conf[[email protected]/* */ conf]# pwd/application/nginx/conf[
ios開發之--仿(微信)自定義表情鍵盤
lai signed avi 創建 不能 url div load mps 先附上demo:https://github.com/hgl753951/CusEmoji.git 效果圖如下: 先說下具體的實現功能: 1,本地加載了一些H5的代碼,直接使用webview的lo
GridView+PopupWindow自定義數字鍵盤
數字鍵盤public class SimpleGridViewTest extends Activity {EditText editText;private PopupWindow popupWindow;private GridView mGridView;private View contentview
JavaScript中自定義函數以及文本框、radio、下拉框的值的獲取,結合淘寶競拍案例來理解。。。
支付寶 價格 select back html alt 文本框 lec 獲取 淘寶競拍案例: HTML部分代碼: <form action="#" method="post"> <h2>歡迎進入淘寶競拍</h2> &l
Django——模板層(template)(模板語法、自定義模板過濾器及標簽、模板繼承)
num 序列 document 希望 可讀性 數量 AC 自然 同學 前言:當我們想在頁面上給客戶端返回一個當前時間,一些初學者可能會很自然的想到用占位符,字符串拼接來達到我們想要的效果,但是這樣做會有一個問題,HTML被直接硬編碼在 Python代碼之中。