Android使用RecyclerView和StaggeredGridLayoutManager实现瀑布流效果-引子

本文介绍了如何在Android中使用RecyclerView和StaggeredGridLayoutManager实现瀑布流效果。从瀑布流概念讲解,到创建项目、引入依赖,再到搭建开发框架,包括抽象Activity、Fragment的实现,最后展示了StaggeredFragment如何承载瀑布流显示。通过实例代码,一步步指导开发者完成瀑布流布局的搭建。
摘要由CSDN通过智能技术生成

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_25074703/article/details/82957570

1、瀑布流概述

淘宝、京东商城等电商平台的首页在下滑刷新的过程中会出现左右不对齐的效果,这种情况的产生主要是由商品类型决定的。不同类型的商品决定了其独特的展示方式,一般情况下会通过自营、满减、满折等标签+价格+描述呈现。鉴于商品的多样性和展示的复杂性,会形成不同的商品高低不一的视觉效果,下滑时错落有致地展示给人以瀑布般的美感,这就是我们要讲的瀑布流的概念。

2、瀑布流实现步骤

  1. 搭建Android开发平台创建项目并引入相关依赖包
  2. 实现基本开发框架
  3. 实现RecyclerView的适配器StaggeredAdapter
  4. 实现StaggeredEmptyViewHolder完成空数据展示
  5. 实现model模型StaggeredVO,以适配服务器数据
  6. 实现StaggeredFormalViewHolder完成正常数据展示
  7. 装载适配器StaggeredAdapter和StaggeredGridLayoutManager展示瀑布流
  8. 实现StaggeredItemDecoration定制分割线

3、搭建Android开发平台创建项目并引入相关依赖包

3.1 平台说明

本项目基于AndroidStudio3.0.1、Java1.8平台开发,如下图
在这里插入图片描述

3.2 创建项目

3.2.1 gradle版本说明

本项目使用相对稳定的2.2.3版本,如下代码:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
   
    repositories {
   
        google()
        jcenter()
        maven {
   
            url 'https://maven.google.com/'
            name 'Google'
        }
    }
    dependencies {
   
        classpath 'com.android.tools.build:gradle:3.0.1'
//        classpath 'com.novoda:bintray-release:0.4.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
   
    repositories {
   
        google()
        jcenter()
        maven {
   
            url 'https://maven.google.com/'
            name 'Google'
        }
    }
}

task clean(type: Delete) {
   
    delete rootProject.buildDir
}

gradle-wrapper.properties配置如下:

#Wed Mar 08 09:36:55 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

注意:local.properties采用默认值即可

3.2.2 编译工具版本配置及依赖说明

apply plugin: 'com.android.application' // this is  a app

android {
   
    compileSdkVersion 26
    buildToolsVersion "26.0.3"

    defaultConfig {
   
        applicationId "com.edwin.idea"  //package name but they are not identical
        minSdkVersion 16  // 最小支持Android4.1版本
        targetSdkVersion 26 // 目标版本是Android7.1.1
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        //为flavor设置一个版本,命名是随意的
        flavorDimensions "versionCode"
    }

    buildTypes {
   
        debug {
   
            minifyEnabled false
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值