前言
我們都知道,在app的開(kāi)發(fā)中輸入框被鍵盤(pán)遮擋已經(jīng)是眾所周知的問(wèn)題了。
在android系統(tǒng)的app中系統(tǒng)已經(jīng)作惡鍵盤(pán)自適應(yīng)。就是當(dāng)輸入框?qū)⒁绘I盤(pán)遮擋的時(shí)候药蜻,輸入框會(huì)自動(dòng)向上移動(dòng),達(dá)到不被鍵盤(pán)遮擋的程度替饿;
那么在iOS中语泽,系統(tǒng)沒(méi)有處理。一般我們會(huì)對(duì)鍵盤(pán)的做事件的監(jiān)聽(tīng)视卢,來(lái)手動(dòng)控制輸入框的位置踱卵。
在后來(lái)隨著IQKeyBoardManage
r的應(yīng)用,在iOS中也實(shí)現(xiàn)了輸入框隨著鍵盤(pán)的高度而移動(dòng)据过。
那么問(wèn)題來(lái)了惋砂,在react-native
中,開(kāi)發(fā)的iOS應(yīng)用存在這樣的問(wèn)題绳锅。而android沒(méi)有西饵。
方案
-
在iOS項(xiàng)目中使用Pod管理項(xiàng)目,引用
IQKeyBoardManager
這種方案雖然可以實(shí)現(xiàn)鍵盤(pán)的字使用高度榨呆,但是這樣太過(guò)依賴(lài)于native項(xiàng)目。
-
用react-native插件話(huà)的思想封裝了這個(gè)IQKeyBoardManager
這種方案直接安裝這個(gè)庫(kù)庸队,執(zhí)行l(wèi)inK命令就可以了积蜻,完全不依賴(lài)于iOS工程項(xiàng)目
使用
npm install --save react-native-keyboard-mgr
如果你想在某些場(chǎng)景禁用鍵盤(pán)自適應(yīng),只需要使用setEnabled(false)
就可以了彻消,
如果你想啟用, 只需要使用setEnabled(true)
就可以了竿拆。
react-native-keyboard-mgr 為什么叫react-native-keyboard-mgr呢?應(yīng)為/react-native-keyboard-manager已經(jīng)被占用了宾尚。多么痛的領(lǐng)悟1瘛P怀骸!
結(jié)語(yǔ)
從此鍵盤(pán)自適應(yīng)完美解決御板!
推薦文章
vue的toast和loading組件