React native开发iOS与Android兼容适配常见问题

页面样式

1.border引发的样式差异

php 复制代码
 <TouchableOpacity style={styles.saveButton}>
    <Text onPress={handleSave} style={styles.saveButtonText}>
        {strings('saveBtn')}
    </Text>
 </TouchableOpacity>
 const styles = StyleSheet.create({
    saveButtonText: {
        fontSize: 16,
        color: AppColors.white_100,
        paddingHorizontal: 40,
        paddingVertical: 7,
        backgroundColor: AppColors.blue_btn,
        borderRadius: 18,
        overflow: 'hidden',//这是关键代码,没有这个属性的设置在iOS的展示中按钮不会展示圆角
    }
});

2.FlatList引发的样式差异

ini 复制代码
<FlatList
   ....
    removeClippedSubviews={false}//这是关键代码,没有这个属性的设置在iOS的展示中列表需要下拉下才会展示数据
    ...
/>

3.使用弹性布局或者百分比适配小屏手机中的UI展示

事件行为

1.input的处理

javascript 复制代码
import {  KeyboardAvoidingView } from 'react-native';
import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';
....
 return Platform.OS === 'ios' ? (
            <KeyboardAvoidingView behavior={Platform.OS === 'ios' ? 'padding' : 'height'}>
            //你的input
            </KeyboardAvoidingView>
        ) : (
            <View>
                <KeyboardAwareScrollView keyboardShouldPersistTaps={'handled'}>
                   //你的input
                </KeyboardAwareScrollView>
            </View>
        );

如果不使用以上的包裹使用的Input使用时部分机型会有键盘遮盖input框的问题出现

相关推荐
李明卫杭州6 小时前
React 复合事件系统对比解析
前端·javascript·react.js
白雾茫茫丶9 小时前
Vibecoding 一个主题切换动画库:13 种揭幕方式
前端·vue.js·react.js
西瓜太郎49910 小时前
别再手算 Token 成本:用 React 状态机做一个可追溯的模型费用计算器
react.js·typescript
右耳朵猫AI14 小时前
Web前端周刊2026W37 | Shopify 转原生、React 编译 Rust 化、Vitest 5.0、Rslib 1.0
前端·javascript·react.js·typescript·node.js
csj5015 小时前
前端基础之《React(13)—表单绑定、列表渲染》
前端·react.js
csj5015 小时前
前端基础之《React(12)—条件渲染》
前端·react.js
晚安日记wanna1 天前
SSR 为什么不适合登录态从水合冲突到缓存串号
前端·react.js·面试
嵩风抚1 天前
一款HK银行APP的业务+技术
android·flutter·react native·html5
liangshanbo12152 天前
React useEffect 与 useLayoutEffect 面试题整理
前端·javascript·react.js
liangshanbo12152 天前
React useState 函数式更新面试题整理
前端·react.js·前端框架