React Native,TouchableOpacity 包裹浮动按钮什么也得不到

2023-11-22

我正在创建一个简单的操作按钮(浮动按钮)

这是工作:

<View style={{
    width: this.props.size,
    height: this.props.size,
    borderRadius: this.props.size / 2,
    backgroundColor: '#ee6e73',
    position: 'absolute',
    bottom: 10,
    right: 10,
    flexDirection:'row'
}}>
    <Text>
        +
    </Text>
</View>

这不是 :

<TouchableOpacity
        onPress={()=>{
        }} >
    <View style={{
        width: this.props.size,
        height: this.props.size,
        borderRadius: this.props.size / 2,
        backgroundColor: '#ee6e73',
        position: 'absolute',
        bottom: 10,
        right: 10,
        flexDirection:'row'
    }}>
        <Text>
            +
        </Text>
    </View>
</TouchableOpacity>

只需用 TouchableOpacity 包裹,然后我的按钮就不会显示,没有任何错误。

反应0.1.7,安卓

然后我尝试将样式从 View 移动到 TouchableOpacity,这是工作

<TouchableOpacity
        onPress={()=>{
        }} 
        style={{
            width: this.props.size,
            height: this.props.size,
            position: 'absolute',
            borderRadius: this.props.size / 2,
            backgroundColor: '#ee6e73',
            bottom: 10,
            right: 10,
        }}>
    <Text>
        +
    </Text>
</TouchableOpacity>

谁能解释一下为什么?

React Native 文档说

[https://facebook.github.io/react-native/docs/touchableopacity.html][1]

使视图正确响应触摸的包装器。 这是在没有实际更改视图层次结构的情况下完成的, 一般来说,很容易添加到应用程序中,而不会产生奇怪的副作用。

这意味着我包装了我原来的视图,它会按我的预期工作,但事实并非如此。


根据我的经验,TouchableOpacity 不能很好地与absolute定位。也许如果你删除它,onPress 将再次工作。

另请注意,首先渲染什么元素以及最后渲染什么元素非常重要。

例如,如果您这样做:

<View>
    <TouchableOpacity style={{position:'absolute'}} onPress={()=> 
           {console.log("It works or not?")}}>
   </TouchableOpacity>
    <Text style={styles.aStyle}>
        Some text bla bla......
    </Text>
</View>

文本很有可能会呈现在TouchableOpacity,因此你将无法获得onPress在职的。

然后,由于位置是绝对的,因此您所要做的就是将其渲染为视图的最后一个子级:

<View>
    <Text style={styles.aStyle}>
        Some text bla bla
    </Text>
    <TouchableOpacity style={{position:'absolute'}} onPress={()=> 
       {console.log("It works or not?")}}>
   </TouchableOpacity>
</View>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Native,TouchableOpacity 包裹浮动按钮什么也得不到 的相关文章

随机推荐

  • 如何在 IIS 管理器中为 ASP.NET 4.0 应用程序添加用户?

    我已在 IIS 7 5 中安装了 ASP NET 4 0 Web 表单应用程序 如果我将应用程序池设置为默认应用程序池 NET Framework 2 0 我得到的图标提供商 NET 角色和 NET 用户显示在 IIS 管理器中应用程序的配
  • 使用 ThreadLocal 进行日期转换

    我需要将传入日期字符串格式 20130212 YYYYMMDD 转换为 12 02 2013 DD MM YYYY using ThreadLocal 我知道一种无需ThreadLocal 谁能帮我 转换无ThreadLocal final
  • Twitter Bootstrap 工具提示在要移出窗口时无法正确对齐

    当我有一个与 Twitter Bootstrap 工具提示关联的元素并且工具提示将在浏览器窗口外重叠时 它会尝试在窗口内重新对齐 但垂直方向未对齐 即工具提示的顶部对齐现在居中而不是在目标元素上方 以前有人遇到过这个问题吗 如果有 解决 修
  • 注意:...第 0 行未知 - 如何找到正确的行,它不是“第 0 行”

    编辑 添加了 PDO 调用 这是实际的错误 Notice Object of class PDOStatement could not be converted to int in Unknown on line 0 一般来说 我怎样才能找
  • 矢量分配崩溃

    vector lt vector
  • tkinter TclError:读取位图文件时出错

    我正在尝试设置一个应用程序图标 python3 tkinter 如下所示 Interface root title Quicklist Editor root iconbitmap home jacob icons qle icon ico
  • ASP.NET MVC:ViewModel 与域实体

    我正在使用 MVC 3 构建一个概念应用程序 试图了解它的方法 我之前在 WebForms 中使用 n 层方法完成了一些非常繁重的应用程序 通常由具有存储库的域对象和在存储之前对其进行操作的服务组成 我正在尝试将我过去做事的方式与在 MVC
  • 如何更改当前的 URL?

    我有以下代码可以从 JavaScript 中更改页面 var newUrl some code to build up URL string window location replace newUrl 但它不会更改顶部 URL 因此当有人
  • Apache Spark 处理倾斜数据

    我有两张桌子想连接在一起 其中之一的数据偏差非常严重 这导致我的 Spark 作业无法并行运行 因为大部分工作都是在一个分区上完成的 我听过 读过并尝试对我的密钥进行加盐以增加分发 https www youtube com watch v
  • “使用警告”与“#!/usr/bin/perl -w”有区别吗?

    我读到最好use warnings 而不是放置一个 w在shebang的最后 两者有什么区别 警告编译指示是命令行标志 w 的替代品 但编译指示仅限于封闭块 而标志是全局的 看佩勒克斯警告了解更多信息和内置警告类别列表 warnings文档
  • 为什么“find . -name *.txt | xargs du -hc”给出多个总计?

    我有一大堆目录 我正在尝试计算其中数百个 txt 文件的总大小 我尝试过这个 大部分有效 find name txt xargs du hc 但最后我没有给我一个总数 而是得到了几个 我的猜测是 管道一次只会传递这么多行 find 的输出
  • Cypress:存根打开窗口

    在我的应用程序中有一个推荐列表 单击该列表会打开一个带有动态地址的新窗口 window open shopURL blank 现在我正在尝试存根 windows open 事件 如下所示https github com cypress io
  • 如何查找AWS S3存储桶中的重复文件?

    有没有办法在 Amazon S3 存储桶中递归查找重复文件 在普通文件系统中 我只需使用 fdupes r my directory Amazon S3 中没有 查找重复项 命令 但是 您确实执行以下操作 检索一个对象列表在桶里 寻找具有以
  • 如何返回至少 4D 的数组:模拟 numpy.atleast_4d 的高效方法

    numpy 提供了三个方便的例程来将数组转换为至少 1D 2D 或 3D 数组 例如通过numpy atleast 3d 我需要多一维的等价物 atleast 4d 我可以想到使用嵌套 if 语句的各种方法 但我想知道是否有更有效和更快的方
  • 我可以从 PowerShell 访问我的自定义 .NET 类吗?

    我对 PowerShell 和 NET 类有一些问题和疑问 我正在尝试编写一个 foo 类 它将调用 Rest Web 服务并执行一些任务 如果我在 GAC 中部署该类 那么我可以从 PowerShell 调用它吗 Try ADD TYPE
  • 此版本的 Realm 不支持在 Realm Studio 中打开格式版本 11 的 Realm 文件

    我正在使用 React Native 在此我指的是this在 React Native 中使用领域数据库的文档 我可以创建react native数据库 但无法在Realm Studio V3 11 0中打开它 当我在工作室中打开保存的 R
  • 使用 JavaScript 创建 HTML 文件

    我正在寻找一种使用 JavaScript 函数在本地目录中创建新 HTML 文件的方法 这可能吗 Thanks 客户端 是的 但您可能需要创建一个新的 ActiveX 对象 因此浏览器只能是 IE 服务器端 只需使用任何服务器端脚本语言 J
  • 确定枚举值是否在列表中 (C#)

    我正在构建一个有趣的小应用程序来确定我是否应该骑自行车上班 我想测试一下是下雨还是雷雨 public enum WeatherType byte Sunny 0 Cloudy 1 Thunderstorm 2 Raining 4 Snowi
  • 将 csv 数据加载到 Hive 表时出错

    我在 hadoop 中有一个 csv 文件 并且有一个 Hive 表 现在我想将该 csv 文件加载到此 Hive 表中 我已使用 load LOAD DATA local path to csv file 覆盖 INTO TABLE 表名
  • React Native,TouchableOpacity 包裹浮动按钮什么也得不到

    我正在创建一个简单的操作按钮 浮动按钮 这是工作