在左上角的视图上反应原生视图?

Posted

技术标签:

【中文标题】在左上角的视图上反应原生视图?【英文标题】:react native view over a view in top left corner? 【发布时间】:2021-10-10 07:59:31 【问题描述】:

我需要在像下图这样的图像视图的上角创建带有高级文本的视图。 我没有任何线索可以做到这一点?谁能帮我实现这个目标?

<TouchableOpacity
        style=
           width: 70,
           height: '100%',
           backgroundColor: Color.appBackgroundColor,
           marginRight: 20,
  
        onPress=() => this.onPressMovie(item)>
        <Image
          style=
            width: '100%',
           height: '100%',
  
          source=uri: Environment.baseUrlForImage + item.thumbnail
        />
      </TouchableOpacity>

【问题讨论】:

【参考方案1】:

像这样的东西可以完成这项工作

<TouchableOpacity
    style=
    width: 70,
    height: '100%',
    backgroundColor: Color.appBackgroundColor,
    marginRight: 20,
    
    onPress=() => this.onPressMovie(item)>
    <Image
    style=
        width: '100%',
    height: '100%',
    
    source=uri: Environment.baseUrlForImage + item.thumbnail
    />

    <View style=position: 'absolute', top: 100, left: -100, transform: [rotate: "-45deg"]>
        <View style=padding: 10, width: 400, backgroundColor: "#ffa602">
            <Text style=color: 'white', textAlign: 'center'>Premium</Text>
        </View>
    </View>
</TouchableOpacity>

【讨论】:

您也可以添加 zIndex 以确保它始终位于顶部 @BloodyMonkey 我用你的代码创建了一个零食。高级文本视图容器位于图像视图之外,请您查看此小吃以供参考。你能帮我解决这个问题吗? snack.expo.dev/PNat193oQ 感谢血猴的帮助。我找到了答案。我为你投了赞成票。谢谢【参考方案2】:

你可以在所有屏幕上试试这个

import React from 'react';
import 
  View,
  Text,
  TouchableOpacity,
  ImageBackground,
  StyleSheet,
  SafeAreaView,
 from 'react-native';

const width = 200;
const height = width / 5;
const top = width / Math.sqrt(8) - height;
const left = -(width / Math.sqrt(8) - height / 2);

export default function Login() 
  return (
    <SafeAreaView style=styles.container>
      <ImageBackground
        source=
          uri: 'https://i.picsum.photos/id/828/200/300.jpg?hmac=YwDXceJcHQbinJfsIHJgrD8NakhtHzBMH-vD4aNcPo4',
        
        style=styles.poster>
        <TouchableOpacity style=styles.premiumWrapper>
          <Text style=styles.premiumText>Premium</Text>
        </TouchableOpacity>
      </ImageBackground>
    </SafeAreaView>
  );


const styles = StyleSheet.create(
  container: 
    flex: 1,
  ,
  poster: 
    height: '100%',
    width: '100%',
    backgroundColor: 'magenta',
  ,
  premiumWrapper: 
    height: height,
    width,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#ffa604',
    transform: [rotate: '-45deg'],
    top,
    left,
  ,
  premiumText: 
    color: 'white',
    fontWeight: 'bold',
    fontSize: 20,
  ,
);

【讨论】:

snack.expo.dev/@cihanbs/rotate-top-left-corner你可以在零食上测试一下 如果我将主容器的图像视图宽度更改为 '80%' 和 alignItems: 'center',则会出现高级包装器的完整视图。我不需要隐藏那个侧视图请看这个更新的小吃snack.expo.dev/Nr5-wT86L 我修正了你可以测试它?

以上是关于在左上角的视图上反应原生视图?的主要内容,如果未能解决你的问题,请参考以下文章

自动填充 otp web 视图反应原生 android

反应原生在视图的一侧添加边框

可以触摸侧视图组件被检测到反应原生?

将孩子包裹在视图中反应原生

打字稿扩展反应原生视图组件

反应原生相机视图