`

[React Native]瀑布流AutoResponsive

阅读更多

1.安装:

npm i autoresponsive-react --save

 2.使用:

官方示例:github:https://github.com/xudafeng/autoresponsive_react_native_sample

 

引用:

let AutoResponsive = require("autoresponsive-react-native");

 

主体:

render() {
    return (
      <ScrollView style={styles.container}>
        <AutoResponsive {...this.getAutoResponsiveProps()}>
          {this.renderChildren()}
        </AutoResponsive>
      </ScrollView>
    );
  }

 方法:

getAutoResponsiveProps() {
    return {
      itemMargin: 0
    };
  }

 

renderChildren() {
    return this.state.array.map((i, key) => {
      return (
        <View style={this.getChildrenStyle(i)} key={key}>
          <TouchableOpacity
            onPress={() =>{}}
          >
            <Image
              style={this.getChildrenStyle(i)}
              source={i}
            />
          </TouchableOpacity>
        </View>
      );
    }, this);
  }

 这个方法显示item内容,下面详细分析.

 

3.显示图片:

数据源:

const image_1 = require("../../img/lookbook_images/1.png");
const image_2 = require("../../img/lookbook_images/2.png");
const image_3 = require("../../img/lookbook_images/3.png");
const image_4 = require("../../img/lookbook_images/4.png");
const image_5 = require("../../img/lookbook_images/5.png");
const image_kc1 = require("../../img/lookbook_images/kc1.png");
const image_kc2 = require("../../img/lookbook_images/kc2.png");
const image_kc3 = require("../../img/lookbook_images/kc3.png");
const image_kc4 = require("../../img/lookbook_images/kc4.png");
const image_kc5 = require("../../img/lookbook_images/kc5.png");

state = {
    array: [
   image_1,image_3,image_2,image_4,image_5,image_kc1,image_kc2,image_kc3,image_kc4,image_kc5]
    };

 在renderChildren()里面遍历出来.

getChildrenStyle(i) {
    let imageWidth = resolveAssetSource(i).width;
    let imageHeight = resolveAssetSource(i).height;

    return {
      width: SCREEN_WIDTH / 2,
      height: (imageHeight / imageWidth) * (SCREEN_WIDTH / 2),
    };
  }

 然后这个方法控制item的style,必须要给予View宽高,否则AutoResponsive会计算不了宽高而报错.

但是只是给View宽高是不够的,因为如果图片尺寸太大,会显示不全.这时候只要View和Image统一一个尺寸就可以了.(高度通过等比计算缩小)

 

这是显示效果:

 


 

 

 

 

  • 大小: 773.9 KB
分享到:
评论

相关推荐

    React Native 瀑布流列表

    React Native 瀑布流列表是一种流行的前端技术,它允许开发者构建动态、响应式的界面,以展示内容,尤其是图片和媒体元素,以类似瀑布或下落石头的方式排列。这种布局方式在电商、摄影或者社交媒体应用中非常常见,...

    autoresponsive_react_native_sample, 面向ReactNative的自动响应网格布局库.zip

    autoresponsive_react_native_sample, 面向ReactNative的自动响应网格布局库 autoresponsive_react_native_sample自动响应的网格布局库的 ReactNative 。 CI平台状态 repoiOS autoresponsive_react_native_samp

    React Native Debugger reactnative可视化调试工具

    React Native Debugger是一款强大的开发工具,特别为在macOS平台上进行React和React Native应用的可视化调试而设计。它提供了丰富的功能,使开发者能够更有效地检查、调试和优化代码,尤其是在处理复杂的Redux状态...

    React Native By Example

    React Native By Example by Richard Kho English | 24 Apr. 2017 | ASIN: B01M31KB4Q | 414 Pages | AZW3 | 4.46 MB Key Features Work on native APIs and UI Elements using React Native Get the best of both...

    30天学习ReactNative教程

    在30天学习React Native教程中,你将深入探索这个由Facebook推出的JavaScript框架,它允许开发者使用一套代码库构建原生的iOS和Android应用程序。React Native结合了React.js的组件化思想与移动平台的特性,提供了...

    reactnativepage一个简单的reactnative分页组件

    React Native Page 是一款专为React Native平台设计的分页组件,它可以帮助开发者轻松地在原生移动应用中实现页面滑动切换的效果。React Native是一种由Facebook开发的开源框架,允许开发者使用JavaScript和React来...

    Android和ReactNative混合开发Demo

    本教程通过"Android和React Native混合开发Demo",将详细介绍如何在Android应用中集成React Native,实现原生代码与React Native组件之间的双向通信。 首先,Android原生加载RN页面是混合开发的基础。这涉及到在...

    react-native-waterfall:用于React Native的虚拟化和无限瀑布布局组件

    用于React-Native的虚拟化和无限瀑布布局组件 入门 npm i react-native-virtualized-waterfall 或者 yarn add react-native-virtualized-waterfall 预习 相关项目: 道具 请参考类型定义 *此项目通过已知的项目...

    react native uwp app

    React Native UWP 应用是将流行的JavaScript框架React Native应用于微软的通用Windows平台(UWP)上,使得开发者能够利用JavaScript编写代码,同时为Windows 10设备提供原生应用程序的体验。React Native UWP结合了...

    东方耀手把手教React Native实战开发

    第2课2、手把手教React Native实战之从React到RN 第3课3、手把手教React Native实战之flexbox布局(RN基础) 第4讲4、手把手教React Native实战之flexbox布局(伸缩属性) 第5讲5、手把手教React Native实战之盒子模型...

    简单易用的ReactNative截屏监听系统截屏事件组件iosandroid

    React Native 是一个由Facebook开发的开源框架,它允许开发者使用JavaScript和React来构建原生的iOS和Android应用程序。在这个特定的场景中,我们讨论的是一个React Native组件,它专注于实现截屏功能并监听系统截屏...

    reactnativeuilib是ReactNative的UI组件库和工具集

    **React Native UI Library和工具集:react-native-uilib** React Native是一种流行的JavaScript框架,用于构建原生移动应用程序。它允许开发者使用JavaScript和React语法来构建iOS和Android应用,实现了跨平台的...

    reactnative debugger tools

    React Native Debugger工具是React Native开发过程中必不可少的调试利器,它为开发者提供了强大的JavaScript源代码调试功能,以及对React Native应用性能的深入洞察。这个工具专为React Native框架设计,可以帮助...

    适用于 Android 和 iOS 的 React Native NFC 模块 react-native-nfc

    为 React Native 带来 NFC 功能。灵感来自phonegap-nfc和react-native-ble-manager 该库最简单(也是最常见)的用例是读取NFC包含 的标签NDEF,可以通过以下代码实现: import React from 'react'; import {View, ...

    ReactNative项目demo

    5. **状态管理和数据流**:ReactNative项目通常使用Redux或MobX进行状态管理。这些库可以帮助管理组件间的数据流,使状态变化更加可预测和可测试。 6. **API集成**:若项目需要与服务器通信,可以使用`fetch`、`...

    ReactNative开发实例带你入门reactnative开发

    React Native 是一个由Facebook开发的开源框架,它允许开发者使用JavaScript和React库来构建原生的iOS和Android应用程序。这个“ReactNative开发实例带你入门reactnative开发”的资源,显然是一个针对初学者的教程,...

    一个基于reactnative开发的完整项目示例

    React Native 是Facebook推出的一款用于构建原生移动应用的开源框架,它允许开发者使用JavaScript和React来构建iOS和Android应用程序。这个“RNExampleApp-master”压缩包文件很可能包含了一个完整的React Native...

    react-ReactNative小书是一本关于ReactNative的入门向的开源书籍

    React Native是Facebook推出的一款用于构建原生移动应用的框架,它允许开发者使用JavaScript和React库来编写iOS和Android应用程序。《React Native小书》作为一本入门级别的开源书籍,旨在帮助初学者快速掌握React ...

    ReactNative启动白屏问题解决方案,教程.docx

    ReactNative 启动白屏问题解决方案教学 ReactNative 启动白屏问题解决方案是指在 React Native 应用程序启动时出现白屏的问题,该问题会给用户带来不友好的体验。出现白屏的原因是 React Native 应用程序在启动时...

Global site tag (gtag.js) - Google Analytics