【问题标题】:React native 0.63 , how to clip element inside borderRadius on android?React native 0.63,如何在android上的borderRadius内剪辑元素?
【发布时间】:2021-01-18 23:37:54
【问题描述】:

我正在尝试在 Android 设备上使用边框半径剪辑元素,就像在 iPhone 上一样。 你知道怎么做吗?

我在FlatList 上设置了borderRadius。

在 iOS 上,FlatList 项目被 borderRadius 剪切,但在 android 上,它们超过了 borderRadius。

【问题讨论】:

    标签: android react-native border-radius


    【解决方案1】:

    包json:

    {
      "name": "BorderRadius",
      "version": "0.0.1",
      "private": true,
      "scripts": {
        "android": "react-native run-android",
        "ios": "react-native run-ios",
        "start": "react-native start",
        "test": "jest",
        "lint": "eslint . --ext .js,.jsx,.ts,.tsx"
      },
      "dependencies": {
        "react": "16.13.1",
        "react-native": "0.63.2"
      },
      "devDependencies": {
        "@babel/core": "^7.8.4",
        "@babel/runtime": "^7.8.4",
        "@react-native-community/eslint-config": "^1.1.0",
        "@types/jest": "^25.2.3",
        "@types/react-native": "^0.63.2",
        "@types/react-test-renderer": "^16.9.2",
        "@typescript-eslint/eslint-plugin": "^2.27.0",
        "@typescript-eslint/parser": "^2.27.0",
        "babel-jest": "^25.1.0",
        "eslint": "^6.5.1",
        "jest": "^25.1.0",
        "metro-react-native-babel-preset": "^0.59.0",
        "react-test-renderer": "16.13.1",
        "typescript": "^3.8.3"
      },
      "jest": {
        "preset": "react-native",
        "moduleFileExtensions": [
          "ts",
          "tsx",
          "js",
          "jsx",
          "json",
          "node"
        ]
      }
    }
    

    我的代码:

    import React from 'react';
    import {
      SafeAreaView,
      StyleSheet,
      View,
      Text,
      StatusBar,
      FlatList,
    } from 'react-native';
    
    const texts = [
      'Lorem ipsum dolor sit amet',
      'Lorem ipsum dolor sit amet',
      'Lorem ipsum dolor sit amet',
      'Lorem ipsum dolor sit amet',
      'Lorem ipsum dolor sit amet',
      'Lorem ipsum dolor sit amet',
      'Lorem ipsum dolor sit amet',
      'Lorem ipsum dolor sit amet',
      'Lorem ipsum dolor sit amet',
      'Lorem ipsum dolor sit amet',
      'Lorem ipsum dolor sit amet',
      'Lorem ipsum dolor sit amet',
      'Lorem ipsum dolor sit amet',
      'Lorem ipsum dolor sit amet',
    ];
    
    const App = () => {
      return (
        <>
          <StatusBar barStyle="dark-content" />
          <SafeAreaView style={styles.background}>
            <View style={styles.spacer} />
            <FlatList
              style={styles.list}
              data={texts}
              renderItem={(obj) => (
                <View style={styles.card} key={obj.index}>
                  <Text>{obj.item}</Text>
                </View>
              )}
            />
          </SafeAreaView>
        </>
      );
    };
    
    const styles = StyleSheet.create({
      background: {
        backgroundColor: 'blue',
        flex: 1,
      },
      spacer: {
        height: 50,
      },
      card: {
        paddingHorizontal: 8,
        paddingVertical: 16,
        borderRadius: 4,
        backgroundColor: 'white',
        borderColor: 'black',
        borderWidth: 1,
        marginBottom: 8,
      },
      list: {
        paddingHorizontal: 25,
        borderTopLeftRadius: 75,
        borderTopRightRadius: 75,
        backgroundColor: 'white',
      },
    });
    
    export default App;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-13
      • 1970-01-01
      • 2021-08-02
      • 2017-06-23
      相关资源
      最近更新 更多