在 React Native 中构建图像卡

Posted

技术标签:

【中文标题】在 React Native 中构建图像卡【英文标题】:Building Image Card in React Native 【发布时间】:2019-08-16 11:26:03 【问题描述】:

我正在尝试在 React Native 中构建一个简单的图像卡组件,但遇到了一些问题。这是我现在的组件 (It's available for you on snack):

我找不到只在卡片上的图像顶部设置边框,同时保持底部边框平整的方法。

所需形式:

Image 组件没有看到从顶部呈现模型的脸,而是居中显示她的身体。

这是用于比较的原始图像:

【问题讨论】:

【参考方案1】:

使用此代码。在View 中添加了overflow: "hidden",并为Image 删除了borderRadius。在ios中测试。

import * as React from 'react';
import  Text, View, Image  from "react-native";


export default class RootComponent extends React.Component 

  render() 
    return (
      <View style= flex: 1, alignItems: "center", justifyContent: "center" >
        <View style= backgroundColor: "#eee", borderRadius: 10, overflow: "hidden" >
          <View>
            <Image
              source=require("./assets/h4.jpg")
              style=
                height: 135,
                width: 155
              
            />
          </View>
          <View style= padding: 10, width: 155 >
            <Text>Title</Text>
            <Text style= color: "#777", paddingTop: 5 >
              Description of the image
            </Text>
          </View>
        </View>
      </View>
    );
  

【讨论】:

【参考方案2】:

通过删除&lt;Image&gt; 的高度并将其设置在其父视图中,图像将从顶部显示。

  <View style= flex: 1, alignItems: "center", justifyContent: "center" >
    <View style= backgroundColor: "#eee", borderRadius: 10, overflow: 'hidden' >
      <View style= height: 135, width: 155, overflow: 'hidden' >
        <Image
          source=require("./assets/h4.jpg")
          style=
            width: 155
          
        />
      </View>
      <View style= padding: 10, width: 155 >
        <Text>Title</Text>
        <Text style= color: "#777", paddingTop: 5 >
          Description of the image
        </Text>
      </View>
    </View>
  </View>

【讨论】:

因为一个问题里面有两个问题,所以我选择了第一个发布是正确的。但这也是正确的,因为它会从顶部渲染图像。谢谢!【参考方案3】:

您可以直接在Card 中使用borderTopLeftRadiusborderTopRightRadius

<Card
    containerStyle=styles.boxCon
    featuredTitle=title
    image=
      uri: urlToImage
    
    imageStyle= borderTopLeftRadius: 10, borderTopRightRadius: 10 
>

const styles = 
  boxCon: 
   margin: 15,
   marginHorizontal: 10,
   marginBottom: 17.5,
   borderColor: '#FFFFFF',
   shadowColor: '#000',
   shadowOffset:  width: 0, height: 2 ,
   shadowOpacity: 0.3,
   shadowRadius: 5,
   elevation: 5,
   borderRadius: 10
  
;

【讨论】:

以上是关于在 React Native 中构建图像卡的主要内容,如果未能解决你的问题,请参考以下文章

Tabview 在 react-native 中作为粘性标题

如何使用渲染操作在 React-native-Gifted-chat 中发送图像/视频和语音消息?

尝试在 react-native 的底部选项卡导航上添加图像时面临问题

SyntaxError - node_modules/react-native/Libraries/polyfills/error-guard.js:缺少分号。 (14:4) 在 react nati

React-Native 图像滑块框中的自定义导航箭头

在 React/React Native 中,如何防止在选项卡更改、表单更改等时对已检索到的图像发出新的网络请求