首先说一下我的ReactNative的版本是0.43.4,Android6.0(华为荣耀6Plus),以下遇到的坑,在最新版的RN中没测试是否还存在,不过按照Facebook的团队习惯,我估计还是没修复的。

一、Textinput

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

android平台上,在padding没指定时,通过Toggle Inspector可以发现TextInput的padding明明是0(见下图1),但实际并非如此,paddingVertical必须指定为0。

Android下发现输入框高度莫名其妙异常


将paddingVertical设为0后,正常了

2、onContentSizeChange方法在初始化时会执行一次,后面就再也不执行,这样要实现输入框的自动高度就无法实现,只能通过在onChange方法中去实现

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配置权限已不起作用,必须在代码中做权限判断

示例:

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('访问相机授权');
            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){
            //有权使用了
        }else{
            Toast.show(Di18n.tr('您没有授权,无法使用相机'));
        }
    });
}


三、View的overflow:hidden和borderRadius同用时,hold不住里面子component,所以当要实现图片圆角时,只能对View里面的子Component图片加borderRadius属性。

BUG网址描述:

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

更多相关文章

  1. Android(安卓)Camera2教程之打开相机、开启预览、实现PreviewCal
  2. Android人脸识别app——基于Face++,MVP+Retofit+RxJava+Dagger高
  3. 2013.04.10——— android listview getview 多次调用的问题
  4. Android-沉浸式布局的玩法
  5. android中ImageView属性及其详解
  6. android View的getHeight和getMeasuredHeight的区别
  7. Android(安卓)Camera开发(一)之基础知识
  8. #Android项目# ——day03 Android(安卓)沉浸式状态栏的解决方案
  9. android 解决viewpager+多个fragment+recyclerview,viewpager展示

随机推荐

  1. jquery中的attr和prop深度理解
  2. 在2个不同的Div中播放/淡出声音
  3. 使用AJAX和JSON来显示来自PHP的HTML内容
  4. 删除使用jQuery动态创建的元素
  5. 如何通过CSS或javascript给句子判刑?
  6. 整理:Google jQuery 引用地址大全和方法(转
  7. 如何知道DOM元素何时移动或调整大小
  8. jquery异步机制源码分析
  9. 未捕获的ReferenceError:HTML未在HTMLTabl
  10. [jquery]如何实现页面单块DIV区域滚动展