开源项目 `livedata-ktx` 使用教程

开源项目 livedata-ktx 使用教程

livedata-ktxKotlin extension for LiveData, chaining like RxJava项目地址:https://gitcode.com/gh_mirrors/li/livedata-ktx

1. 项目的目录结构及介绍

livedata-ktx 项目的目录结构如下:

livedata-ktx/
├── build.gradle
├── gradle.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
├── README.md
└── livedata-ktx/
    ├── build.gradle
    ├── src/
        ├── main/
            ├── kotlin/
                └── com/
                    └── shopify/
                        └── livedata/
                            ├── LiveDataExtensions.kt
                            └── LiveDataKtx.kt
        └── test/
            ├── kotlin/
                └── com/
                    └── shopify/
                        └── livedata/
                            └── LiveDataExtensionsTest.kt

目录结构介绍

  • build.gradlesettings.gradle:项目的构建配置文件。
  • gradle.properties:Gradle 构建工具的配置文件。
  • gradlewgradlew.bat:Gradle 包装器脚本。
  • README.md:项目说明文档。
  • livedata-ktx/:项目的主要代码目录。
    • build.gradle:模块的构建配置文件。
    • src/:源代码目录。
      • main/:主代码目录。
        • kotlin/:Kotlin 代码目录。
          • com/shopify/livedata/:主要的 Kotlin 代码文件。
      • test/:测试代码目录。
        • kotlin/:Kotlin 测试代码目录。
          • com/shopify/livedata/:测试代码文件。

2. 项目的启动文件介绍

项目的启动文件主要是 LiveDataKtx.kt,位于 src/main/kotlin/com/shopify/livedata/ 目录下。

启动文件介绍

LiveDataKtx.kt 文件包含了 livedata-ktx 库的核心功能扩展,主要提供了对 LiveData 的 Kotlin 扩展支持。以下是文件的主要内容:

package com.shopify.livedata

import androidx.lifecycle.LiveData
import androidx.lifecycle.MediatorLiveData
import androidx.lifecycle.Observer

fun <T> LiveData<T>.observeOnce(observer: Observer<T>) {
    observeForever(object : Observer<T> {
        override fun onChanged(t: T?) {
            observer.onChanged(t)
            removeObserver(this)
        }
    })
}

fun <T> LiveData<T>.distinctUntilChanged(): LiveData<T> {
    val mediatorLiveData = MediatorLiveData<T>()
    mediatorLiveData.addSource(this) {
        if (mediatorLiveData.value != it) {
            mediatorLiveData.value = it
        }
    }
    return mediatorLiveData
}

主要功能

  • observeOnce:提供了一次性观察 LiveData 的功能。
  • distinctUntilChanged:提供了对 LiveData 值变化的去重功能。

3. 项目的配置文件介绍

项目的配置文件主要包括 build.gradlegradle.properties

build.gradle

build.gradle 文件位于项目根目录和 livedata-ktx 模块目录下,分别用于项目的整体构建配置和模块的构建配置。

根目录 build.gradle
buildscript {
    ext.kotlin_version = '1.5.21'
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}
模块目录 build.gradle
plugins {
    id 'com.android.library'
    id 'kotlin-android'
}

android {
    compileSdkVersion 30
    defaultConfig {
        min

livedata-ktxKotlin extension for LiveData, chaining like RxJava项目地址:https://gitcode.com/gh_mirrors/li/livedata-ktx

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陆骊咪Durwin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值