最近reactNative在開發(fā)android中遇到的坑

首先說一下我的ReactNative的版本是0.43.4,Android6.0(華為榮耀6Plus),以下遇到的坑,在最新版的RN中沒測試是否還存在,不過按照Facebook的團隊習(xí)慣,我估計還是沒修復(fù)的。

一、Textinput

1、android下相同高度的輸入框高度比ios下高。

android平臺上,在padding沒指定時,通過Toggle Inspector可以發(fā)現(xiàn)TextInput的padding明明是0(見下圖1),但實際并非如此,paddingVertical必須指定為0。

Android下發(fā)現(xiàn)輸入框高度莫名其妙異常


將paddingVertical設(shè)為0后,正常了

2、onContentSizeChange方法在初始化時會執(zhí)行一次,后面就再也不執(zhí)行,這樣要實現(xiàn)輸入框的自動高度就無法實現(xiàn),只能通過在onChange方法中去實現(xiàn)

onTextShouldChange(event) {
? ? lettext= event.nativeEvent.text;
? ? //TODO:ANDROID上onContentSizeChange不生效,需要通過onChange來
? ? if(Platform.OS=='android'){
? ? ? ? this.onContentSizeChange(event);
? ? }
}
onContentSizeChange(event) {
? ? let hei=Math.max(event.nativeEvent.contentSize.height,22*scale);
? ? this.setState({inputHei:Math.min(hei,136*scale)});
}

二、攝像頭與相冊讀取

android6.0及以上版本,在android/app/src/AndroidManifest.xml配置權(quán)限已不起作用,必須在代碼中做權(quán)限判斷

示例:

import{
? ? Platform,
? ? PermissionsAndroid
} from'react-native';
....
requestPermission(pname){
? ? if(Platform.OS=='ios'){
? ? ? ? return true;
? ? }
? ? try{
? ? ? ? let message='',title='';
? ? ? ? if(pname==PermissionsAndroid.PERMISSIONS.CAMERA){
? ? ? ? ? ? title= Di18n.tr('訪問相機授權(quán)');
? ? ? ? ? ? message= Di18n.tr('需要允許使用您的相機才可拍照');
? ? ? ? }
? ? ? ? const ?granted=awaitPermissionsAndroid.request(pname,{title,message});
? ? ? ? if(granted===PermissionsAndroid.RESULTS.GRANTED) {
? ? ? ? ? ? return true;
? ? ? ? }else{
? ? ? ? ? ? return false;
? ? ? ? }
? ? }catch(err) {
? ? ? ? console.log('requestPermission err',err);
? ? ? ? return false;
? ? }
}

componentDidMount(){
? ? this.requestPermission(this.permission).then((result)=>{
? ? ? ? if(result){
? ? ? ? ? ? //有權(quán)使用了
? ? ? ? }else{
? ? ? ? ? ? Toast.show(Di18n.tr('您沒有授權(quán),無法使用相機'));
? ? ? ? }
? ? });
}


三、View的overflow:hidden和borderRadius同用時,hold不住里面子component,所以當要實現(xiàn)圖片圓角時,只能對View里面的子Component圖片加borderRadius屬性。

BUG網(wǎng)址描述:

https://github.com/facebook/react-native/issues/3198
https://github.com/facebook/react-native/issues/8885

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容