KTX 扩展列表

androidx.activity

依赖项

Groovy

dependencies {
    implementation "androidx.activity:activity-ktx:1.9.2"
}

Kotlin

dependencies {
    implementation("androidx.activity:activity-ktx:1.9.2")
}

扩展函数

对于 OnBackPressedDispatcher
OnBackPressedCallback OnBackPressedDispatcher.addCallback(owner: LifecycleOwner? = null, enabled: Boolean = true, onBackPressed: OnBackPressedCallback.() -> Unit)

创建一个新的 OnBackPressedCallback 并将其添加到 onBackPressed 中,在 OnBackPressedCallback.handleOnBackPressed 中调用它。

对于 ComponentActivity
Lazy<VM> ComponentActivity.viewModels(noinline factoryProducer: () -> ViewModelProvider.Factory = null)

返回一个 Lazy 代理来访问 ComponentActivity 的 ViewModel,如果指定了 factoryProducer,那么它返回的 ViewModelProvider.Factory 将用于第一次创建 ViewModel

androidx.benchmark

依赖项

Groovy

dependencies {
    implementation "androidx.benchmark:benchmark-junit4:1.3.0"
}

Kotlin

dependencies {
    implementation("androidx.benchmark:benchmark-junit4:1.3.0")
}

顶层函数

Unit beginTraceSection(sectionName: String)

Unit endTraceSection()

androidx.benchmark.junit4

依赖项

Groovy

dependencies {
    implementation "androidx.benchmark:benchmark-junit4:1.3.0"
}

Kotlin

dependencies {
    implementation("androidx.benchmark:benchmark-junit4:1.3.0")
}

扩展函数

对于 BenchmarkRule
Unit BenchmarkRule.measureRepeated(crossinline block: BenchmarkRule.Scope.() -> Unit)

对一段代码进行基准测试。

androidx.collection

依赖项

Groovy

dependencies {
    implementation "androidx.collection:collection-ktx:1.4.3"
}

Kotlin

dependencies {
    implementation("androidx.collection:collection-ktx:1.4.3")
}

扩展函数

对于 LongSparseArray
operator Boolean LongSparseArray<T>.contains(key: Long)

如果集合包含 key,则返回 true。

Unit LongSparseArray<T>.forEach(action: (key: Long, value: T) -> Unit)

对每个键值对执行给定的 action

T LongSparseArray<T>.getOrDefault(key: Long, defaultValue: T)

返回与 key 对应的值,如果不存在则返回 defaultValue

T LongSparseArray<T>.getOrElse(key: Long, defaultValue: () -> T)

返回与 key 对应的值,如果不存在则返回 defaultValue 的结果。

布尔值 LongSparseArray<T>.isNotEmpty()

如果集合包含元素,则返回 true。

LongIterator LongSparseArray<T>.keyIterator()

返回集合键的迭代器。

operator LongSparseArray<T> LongSparseArray<T>.plus(other: LongSparseArray<T>)

通过添加或替换来自 other 的条目来创建一个新的集合。

布尔值 LongSparseArray<T>.remove(key: Long, value: T)

仅当 key 映射到 value 时,删除 key 的条目。

operator Unit LongSparseArray<T>.set(key: Long, value: T)

允许使用索引运算符在集合中存储值。

Iterator<T> LongSparseArray<T>.valueIterator()

返回集合值的迭代器。

对于 SparseArrayCompat
operator Boolean SparseArrayCompat<T>.contains(key: Int)

如果集合包含 key,则返回 true。

Unit SparseArrayCompat<T>.forEach(action: (key: Int, value: T) -> Unit)

对每个键值对执行给定的 action

T SparseArrayCompat<T>.getOrDefault(key: Int, defaultValue: T)

返回与 key 对应的值,如果不存在则返回 defaultValue

T SparseArrayCompat<T>.getOrElse(key: Int, defaultValue: () -> T)

返回与 key 对应的值,如果不存在则返回 defaultValue 的结果。

布尔值 SparseArrayCompat<T>.isNotEmpty()

如果集合包含元素,则返回 true。

IntIterator SparseArrayCompat<T>.keyIterator()

返回集合键的迭代器。

operator SparseArrayCompat<T> SparseArrayCompat<T>.plus(other: SparseArrayCompat<T>)

通过添加或替换来自 other 的条目来创建一个新的集合。

布尔值 SparseArrayCompat<T>.remove(key: Int, value: T)

仅当 key 映射到 value 时,删除 key 的条目。

operator Unit SparseArrayCompat<T>.set(key: Int, value: T)

允许使用索引运算符在集合中存储值。

Iterator<T> SparseArrayCompat<T>.valueIterator()

返回集合值的迭代器。

扩展属性

对于 LongSparseArray
Int LongSparseArray<T>.size()

返回集合中键值对的数量。

对于 SparseArrayCompat
Int SparseArrayCompat<T>.size()

返回集合中键值对的数量。

顶层函数

ArrayMap<K, V> arrayMapOf()

返回一个新的空 ArrayMap

ArrayMap<K, V> arrayMapOf(vararg pairs: Pair<K, V>)

返回一个新的 ArrayMap,其中包含指定的内容,这些内容以键值对列表的形式给出,其中第一个组件是键,第二个组件是值。

ArraySet<T> arraySetOf()

返回一个新的空 ArraySet

ArraySet<T> arraySetOf(vararg values: T)

返回一个新的 ArraySet,其中包含指定的内容。

LruCache<K, V> lruCache(maxSize: Int, crossinline sizeOf: (key: K, value: V) -> Int = { _, _ -> 1 }, crossinline create: (key: K) -> V? = { null as V? }, crossinline onEntryRemoved: (evicted: Boolean, key: K, oldValue: V, newValue: V?) -> Unit = { _, _, _, _ -> })

创建具有给定参数的 LruCache

androidx.core.animation

依赖项

Groovy

dependencies {
    implementation "androidx.core:core-ktx:1.13.1"
}

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.13.1")
}

扩展函数

对于 android.animation.Animator
AnimatorListener Animator.addListener(crossinline onEnd: (animator: Animator) -> Unit = {}, crossinline onStart: (animator: Animator) -> Unit = {}, crossinline onCancel: (animator: Animator) -> Unit = {}, crossinline onRepeat: (animator: Animator) -> Unit = {})

使用提供的操作将监听器添加到此 Animator 中。

AnimatorPauseListener Animator.addPauseListener(crossinline onResume: (animator: Animator) -> Unit = {}, crossinline onPause: (animator: Animator) -> Unit = {})

使用提供的操作将暂停和恢复监听器添加到此 Animator 中。

AnimatorListener Animator.doOnCancel(crossinline action: (animator: Animator) -> Unit)

添加将在动画被取消时调用的操作。

AnimatorListener Animator.doOnEnd(crossinline action: (animator: Animator) -> Unit)

添加将在动画结束后调用的操作。

AnimatorPauseListener Animator.doOnPause(crossinline action: (animator: Animator) -> Unit)

添加将在动画被暂停时调用的操作。

AnimatorListener Animator.doOnRepeat(crossinline action: (animator: Animator) -> Unit)

添加将在动画重复时调用的操作。

AnimatorPauseListener Animator.doOnResume(crossinline action: (animator: Animator) -> Unit)

添加将在动画在暂停后恢复时调用的操作。

AnimatorListener Animator.doOnStart(crossinline action: (animator: Animator) -> Unit)

添加将在动画开始时调用的操作。

androidx.core.content

依赖项

Groovy

dependencies {
    implementation "androidx.core:core-ktx:1.13.1"
}

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.13.1")
}

扩展函数

对于 android.content.Context
T? Context.getSystemService()

通过类返回系统级服务的句柄。

Unit Context.withStyledAttributes(set: AttributeSet? = null, attrs: IntArray, @AttrRes defStyleAttr: Int = 0, @StyleRes defStyleRes: Int = 0, block: TypedArray.() -> Unit)

TypedArray 接收器上执行 block

Unit Context.withStyledAttributes(@StyleRes resourceId: Int, attrs: IntArray, block: TypedArray.() -> Unit)

TypedArray 接收器上执行 block

对于 android.content.SharedPreferences
Unit SharedPreferences.edit(commit: Boolean = false, action: Editor.() -> Unit)

允许使用对 applycommit 的调用来编辑此首选项实例,以持久保存更改。

顶层函数

ContentValues contentValuesOf(vararg pairs: Pair<String, Any?>)

返回一个新的 ContentValues,其中包含给定的键值对作为元素。

androidx.core.content.res

依赖项

Groovy

dependencies {
    implementation "androidx.core:core-ktx:1.13.1"
}

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.13.1")
}

扩展函数

对于 android.content.res.TypedArray
布尔值 TypedArray.getBooleanOrThrow(@StyleableRes index: Int)

检索 index 处属性的布尔值,如果未定义,则抛出 IllegalArgumentException

Int TypedArray.getColorOrThrow(@StyleableRes index: Int)

检索 index 处属性的颜色值,如果未定义,则抛出 IllegalArgumentException

ColorStateList TypedArray.getColorStateListOrThrow(@StyleableRes index: Int)

检索 index 处属性的颜色状态列表值,如果未定义,则抛出 IllegalArgumentException

Float TypedArray.getDimensionOrThrow(@StyleableRes index: Int)

检索 index 处属性的尺寸值,如果未定义,则抛出 IllegalArgumentException

Int TypedArray.getDimensionPixelOffsetOrThrow(@StyleableRes index: Int)

检索 index 处属性的尺寸像素偏移值,如果未定义,则抛出 IllegalArgumentException

Int TypedArray.getDimensionPixelSizeOrThrow(@StyleableRes index: Int)

检索 index 处属性的尺寸像素大小值,如果未定义,则抛出 IllegalArgumentException

Drawable TypedArray.getDrawableOrThrow(@StyleableRes index: Int)

检索 index 处属性的可绘制值,如果未定义,则抛出 IllegalArgumentException

Float TypedArray.getFloatOrThrow(@StyleableRes index: Int)

检索 index 处属性的浮点值,如果未定义,则抛出 IllegalArgumentException

Typeface TypedArray.getFontOrThrow(@StyleableRes index: Int)

检索 index 处属性的字体值,如果未定义,则抛出 IllegalArgumentException

Int TypedArray.getIntOrThrow(@StyleableRes index: Int)

检索 index 处属性的整数。如果未定义,则抛出 IllegalArgumentException

Int TypedArray.getIntegerOrThrow(@StyleableRes index: Int)

获取属性在 索引 处的整数值,如果未定义,则抛出 IllegalArgumentException

Int TypedArray.getResourceIdOrThrow(@StyleableRes index: Int)

获取属性在 索引 处的资源标识符,如果未定义,则抛出 IllegalArgumentException

字符串 TypedArray.getStringOrThrow(@StyleableRes index: Int)

获取属性在 索引 处的字符串值,如果未定义,则抛出 IllegalArgumentException

Array<CharSequence> TypedArray.getTextArrayOrThrow(@StyleableRes index: Int)

获取属性在 索引 处的文本数组值,如果未定义,则抛出 IllegalArgumentException

CharSequence TypedArray.getTextOrThrow(@StyleableRes index: Int)

获取属性在 索引 处的文本值,如果未定义,则抛出 IllegalArgumentException

R TypedArray.use(block: (TypedArray) -> R)

在该 TypedArray 上执行给定的 block 函数,然后回收它。

androidx.core.database

依赖项

Groovy

dependencies {
    implementation "androidx.core:core-ktx:1.13.1"
}

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.13.1")
}

扩展函数

用于 android.database.Cursor
ByteArray? Cursor.getBlobOrNull(index: Int)

将请求列的值作为可空的字节数组返回。

Double? Cursor.getDoubleOrNull(index: Int)

将请求列的值作为可空的双精度浮点数返回。

Float? Cursor.getFloatOrNull(index: Int)

将请求列的值作为可空的单精度浮点数返回。

Int? Cursor.getIntOrNull(index: Int)

将请求列的值作为可空的整数返回。

Long? Cursor.getLongOrNull(index: Int)

将请求列的值作为可空的 long 值返回。

Short? Cursor.getShortOrNull(index: Int)

将请求列的值作为可空的短整型值返回。

String? Cursor.getStringOrNull(index: Int)

将请求列的值作为可空的字符串返回。

androidx.core.database.sqlite

依赖项

Groovy

dependencies {
    implementation "androidx.core:core-ktx:1.13.1"
}

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.13.1")
}

扩展函数

用于 android.database.sqlite.SQLiteDatabase
T SQLiteDatabase.transaction(exclusive: Boolean = true, body: SQLiteDatabase.() -> T)

在事务中运行 body,如果它在没有异常的情况下完成,则将其标记为成功。

androidx.core.graphics

依赖项

Groovy

dependencies {
    implementation "androidx.core:core-ktx:1.13.1"
}

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.13.1")
}

扩展函数

用于 android.graphics.Bitmap
Bitmap Bitmap.applyCanvas(block: Canvas.() -> Unit)

创建一个新的 Canvas 来绘制该位图,并在新创建的画布上执行指定的 block

operator Boolean Bitmap.contains(p: Point)

如果指定点位于位图内,则返回 true。

operator Boolean Bitmap.contains(p: PointF)

如果指定点位于位图内,则返回 true。

operator Int Bitmap.get(x: Int, y: Int)

返回指定位置处像素的值。

Bitmap Bitmap.scale(width: Int, height: Int, filter: Boolean = true)

尽可能地从该位图创建新的位图,并进行缩放。

operator Unit Bitmap.set(x: Int, y: Int, color: Int)

将指定的 颜色值 写入位图(假设它是可变的)在指定的 (x, y) 坐标处。

对于 android.graphics.Canvas
Unit Canvas.withClip(clipRect: Rect, block: Canvas.() -> Unit)

将指定的 block 包含在对 Canvas.save/Canvas.clipRectCanvas.restoreToCount 的调用中。

Unit Canvas.withClip(clipRect: RectF, block: Canvas.() -> Unit)

将指定的 block 包含在对 Canvas.save/Canvas.clipRectCanvas.restoreToCount 的调用中。

Unit Canvas.withClip(left: Int, top: Int, right: Int, bottom: Int, block: Canvas.() -> Unit)

将指定的 block 包含在对 Canvas.save/Canvas.clipRectCanvas.restoreToCount 的调用中。

Unit Canvas.withClip(left: Float, top: Float, right: Float, bottom: Float, block: Canvas.() -> Unit)

将指定的 block 包含在对 Canvas.save/Canvas.clipRectCanvas.restoreToCount 的调用中。

Unit Canvas.withClip(clipPath: Path, block: Canvas.() -> Unit)

将指定的 block 包含在对 Canvas.save/Canvas.clipPathCanvas.restoreToCount 的调用中。

Unit Canvas.withMatrix(matrix: Matrix = Matrix(), block: Canvas.() -> Unit)

将指定的 block 包含在对 Canvas.save/Canvas.concatCanvas.restoreToCount 的调用中。

Unit Canvas.withRotation(degrees: Float = 0.0f, pivotX: Float = 0.0f, pivotY: Float = 0.0f, block: Canvas.() -> Unit)

将指定的 block 包含在对 Canvas.save/Canvas.rotateCanvas.restoreToCount 的调用中。

Unit Canvas.withSave(block: Canvas.() -> Unit)

将指定的 block 包含在对 Canvas.saveCanvas.restoreToCount 的调用中。

Unit Canvas.withScale(x: Float = 1.0f, y: Float = 1.0f, pivotX: Float = 0.0f, pivotY: Float = 0.0f, block: Canvas.() -> Unit)

将指定的 block 包裹在对 Canvas.save/Canvas.scaleCanvas.restoreToCount 的调用中。

Unit Canvas.withSkew(x: Float = 0.0f, y: Float = 0.0f, block: Canvas.() -> Unit)

将指定的 block 包裹在对 Canvas.save/Canvas.skewCanvas.restoreToCount 的调用中。

Unit Canvas.withTranslation(x: Float = 0.0f, y: Float = 0.0f, block: Canvas.() -> Unit)

将指定的 block 包裹在对 Canvas.save/Canvas.translateCanvas.restoreToCount 的调用中。

对于 android.graphics.Color
operator Float Color.component1()

返回颜色的第一个分量。

operator Float Color.component2()

返回颜色的第二个分量。

operator Float Color.component3()

返回颜色的第三个分量。

operator Float Color.component4()

返回颜色的第四个分量。

infix Color! Color.convertTo(colorSpace: Named)

将接收器颜色转换为指定颜色空间中的颜色。

infix Color! Color.convertTo(colorSpace: ColorSpace)

将接收器颜色转换为指定颜色空间中的颜色。

operator Color Color.plus(c: Color)

将两个半透明颜色复合在一起。

对于 android.graphics.ImageDecoder.Source
Bitmap Source.decodeBitmap(crossinline action: ImageDecoder.(info: ImageInfo, source: Source) -> Unit)

从 Source 创建 Bitmap。

Drawable Source.decodeDrawable(crossinline action: ImageDecoder.(info: ImageInfo, source: Source) -> Unit)

从 Source 创建 Drawable。

对于 android.graphics.Matrix
operator Matrix Matrix.times(m: Matrix)

将此 Matrix 与另一个矩阵相乘,并将结果作为新矩阵返回。

FloatArray Matrix.values()

将此 Matrix 的 9 个值作为新的浮点型数组返回。

对于 android.graphics.Paint
布尔值 Paint.setBlendMode(blendModeCompat: BlendModeCompat?)

便捷方法,用于以向后兼容的方式配置 Paint 的 BlendMode。

对于 android.graphics.Path
infix Path Path.and(p: Path)

将两个路径的交集作为新的 Path 返回。

Iterable<PathSegment> Path.flatten(error: Float = 0.5f)

使用一系列线段来扁平化(或近似)Path

operator Path Path.minus(p: Path)

返回两个路径的差值,作为新的 Path

infix Path Path.or(p: Path)

返回两个路径的并集,作为新的 Path

operator Path Path.plus(p: Path)

返回两个路径的并集,作为新的 Path

infix Path Path.xor(p: Path)

返回两个路径的并集减去交集,作为新的 Path

对于 android.graphics.Picture
Picture Picture.record(width: Int, height: Int, block: Canvas.() -> Unit)

创建一个新的 Canvas 来记录此 Picture 中的命令,在新建的画布上执行指定的 block,并返回此 Picture

对于 android.graphics.Point
operator Int Point.component1()

返回此点的 x 坐标。

operator Int Point.component2()

返回此点的 y 坐标。

operator Point Point.minus(p: Point)

将此点偏移指定点的负值,并将结果作为新点返回。

operator Point Point.minus(xy: Int)

将此点偏移指定值(在 X 和 Y 轴上)的负值,并将结果作为新点返回。

operator Point Point.plus(p: Point)

将此点偏移指定点,并将结果作为新点返回。

operator Point Point.plus(xy: Int)

将此点偏移指定值(在 X 和 Y 轴上),并将结果作为新点返回。

PointF Point.toPointF()

返回此点的 PointF 表示形式。

operator Point Point.unaryMinus()

返回一个表示此点负值的新点。

对于 android.graphics.PointF
operator Float PointF.component1()

返回此点的 x 坐标。

operator Float PointF.component2()

返回此点的 y 坐标。

operator PointF PointF.minus(p: PointF)

将此点偏移指定点的负值,并将结果作为新点返回。

operator PointF PointF.minus(xy: Float)

将此点偏移指定值(在 X 和 Y 轴上)的负值,并将结果作为新点返回。

operator PointF PointF.plus(p: PointF)

将此点偏移指定点,并将结果作为新点返回。

operator PointF PointF.plus(xy: Float)

将此点偏移指定值(在 X 和 Y 轴上),并将结果作为新点返回。

Point PointF.toPoint()

返回此点的 Point 表示形式。

operator PointF PointF.unaryMinus()

返回一个表示此点负值的新点。

对于 android.graphics.PorterDuff.Mode
PorterDuffColorFilter Mode.toColorFilter(color: Int)

创建一个新的 PorterDuffColorFilter,它使用此 PorterDuff.Mode 作为 alpha 合成或混合模式,以及指定的 color

PorterDuffXfermode Mode.toXfermode()

创建一个新的 PorterDuffXfermode,它使用此 PorterDuff.Mode 作为 alpha 合成或混合模式。

对于 android.graphics.Rect
infix Rect Rect.and(r: Rect)

返回两个矩形的交集,作为新矩形。

operator Int Rect.component1()

返回 "left",矩形的第一个组件。

operator Int Rect.component2()

返回 "top",矩形的第二个组件。

operator Int Rect.component3()

返回 "right",矩形的第三个组件。

operator Int Rect.component4()

返回 "bottom",矩形的第四个组件。

operator Boolean Rect.contains(p: Point)

如果指定的点在矩形内,则返回 true。

operator Region Rect.minus(r: Rect)

返回此矩形与指定矩形之间的差值,作为新区域。

operator Rect Rect.minus(xy: Int)

返回一个表示此矩形偏移指定值(在 X 和 Y 轴上)负值的新矩形。

operator Rect Rect.minus(xy: Point)

返回一个表示此矩形偏移指定点的负值的新矩形。

infix Rect Rect.or(r: Rect)

返回两个矩形的并集,作为新矩形。

operator Rect Rect.plus(r: Rect)

执行此矩形与指定矩形的并集,并将结果作为新矩形返回。

operator Rect Rect.plus(xy: Int)

返回一个新的矩形,代表此矩形在 X 轴和 Y 轴上偏移指定量。

operator Rect Rect.plus(xy: Point)

返回一个新的矩形,代表此矩形偏移指定点。

operator Rect Rect.times(factor: Int)

返回一个新的矩形,代表此矩形的每个组件都按 factor 缩放。

RectF Rect.toRectF()

返回此矩形的 RectF 表示。

Region Rect.toRegion()

返回此矩形的 Region 表示。

infix Region Rect.xor(r: Rect)

返回两个矩形的并集减去交集,作为新的区域。

对于 android.graphics.RectF
infix RectF RectF.and(r: RectF)

返回两个矩形的交集,作为新矩形。

operator Float RectF.component1()

返回 "left",矩形的第一个组件。

operator Float RectF.component2()

返回 "top",矩形的第二个组件。

operator Float RectF.component3()

返回 "right",矩形的第三个组件。

operator Float RectF.component4()

返回 "bottom",矩形的第四个组件。

operator Boolean RectF.contains(p: PointF)

如果指定的点在矩形内,则返回 true。

operator Region RectF.minus(r: RectF)

返回此矩形与指定矩形之间的差值,作为新区域。

operator RectF RectF.minus(xy: Float)

返回一个表示此矩形偏移指定值(在 X 和 Y 轴上)负值的新矩形。

operator RectF RectF.minus(xy: PointF)

返回一个表示此矩形偏移指定点的负值的新矩形。

infix RectF RectF.or(r: RectF)

返回两个矩形的并集,作为新矩形。

operator RectF RectF.plus(r: RectF)

执行此矩形与指定矩形的并集,并将结果作为新矩形返回。

operator RectF RectF.plus(xy: Float)

返回一个新的矩形,代表此矩形在 X 轴和 Y 轴上偏移指定量。

operator RectF RectF.plus(xy: PointF)

返回一个新的矩形,代表此矩形偏移指定点。

operator RectF RectF.times(factor: Int)

返回一个新的矩形,代表此矩形的每个组件都按 factor 缩放。

operator RectF RectF.times(factor: Float)

返回一个新的矩形,代表此矩形的每个组件都按 factor 缩放。

Rect RectF.toRect()

返回此矩形的 Rect 表示。

Region RectF.toRegion()

返回此矩形的 Region 表示。

RectF RectF.transform(m: Matrix)

使用提供的 Matrix 原地变换此矩形,并返回此矩形。

infix Region RectF.xor(r: RectF)

返回两个矩形的并集减去交集,作为新的区域。

对于 android.graphics.Region
infix Region Region.and(r: Rect)

返回此区域与指定 Rect 的交集作为新区域。

infix Region Region.and(r: Region)

返回此区域与指定区域的交集作为新区域。

operator Boolean Region.contains(p: Point)

如果区域包含指定的 Point,则返回 true。

Unit Region.forEach(action: (rect: Rect) -> Unit)

对此区域中的每个矩形执行给定的操作。

operator Iterator<Rect> Region.iterator()

返回此区域中矩形的 Iterator

operator Region Region.minus(r: Rect)

返回此区域与指定 Rect 的差集作为新区域。

operator Region Region.minus(r: Region)

返回此区域与指定区域的差集作为新区域。

operator Region Region.not()

返回此区域的否定作为新区域。

infix Region Region.or(r: Rect)

返回此区域与指定 Rect 的并集作为新区域。

infix Region Region.or(r: Region)

返回该区域与指定区域的并集作为新的区域。

operator Region Region.plus(r: Rect)

返回此区域与指定 Rect 的并集作为新区域。

operator Region Region.plus(r: Region)

返回该区域与指定区域的并集作为新的区域。

operator Region Region.unaryMinus()

返回此区域的否定作为新区域。

infix Region Region.xor(r: Rect)

返回该区域与指定 Rect 的并集减去交集作为新的区域。

infix Region Region.xor(r: Region)

返回该区域与指定区域的并集减去交集作为新的区域。

对于 android.graphics.Shader
Unit Shader.transform(block: Matrix.() -> Unit)

将指定的 block 包含在对 Shader.getLocalMatrixShader.setLocalMatrix 的调用中。

对于 kotlin.Int
operator Int Int.component1()

返回颜色整数的 alpha 分量。

operator Int Int.component2()

返回颜色整数的 red 分量。

operator Int Int.component3()

返回颜色整数的 green 分量。

operator Int Int.component4()

返回颜色整数的 blue 分量。

infix Long Int.convertTo(colorSpace: Named)

将接收到的颜色整数转换为指定颜色空间中的颜色长整数。

infix Long Int.convertTo(colorSpace: ColorSpace)

将接收到的颜色整数转换为指定颜色空间中的颜色长整数。

颜色 Int.toColor()

从颜色整数创建一个新的 Color 实例。

长整数 Int.toColorLong()

将指定的 ARGB 颜色整数 转换为 sRGB 颜色空间中的 RGBA 颜色长整数

对于 kotlin.Long
operator Float Long.component1()

返回颜色的第一个分量。

operator Float Long.component2()

返回颜色的第二个分量。

operator Float Long.component3()

返回颜色的第三个分量。

operator Float Long.component4()

返回颜色的第四个分量。

infix Long Long.convertTo(colorSpace: Named)

将接收到的颜色长整数转换为指定颜色空间中的颜色长整数。

infix Long Long.convertTo(colorSpace: ColorSpace)

将接收到的颜色长整数转换为指定颜色空间中的颜色长整数。

颜色 Long.toColor()

颜色长整数 创建一个新的 Color 实例。

Int Long.toColorInt()

将指定的 颜色长整数 转换为 ARGB 颜色整数

对于 kotlin.String
Int String.toColorInt()

返回此 String 的对应 Int 颜色。

扩展属性

对于 kotlin.Int
Int Int.alpha()

返回颜色整数的 alpha 分量。

Int Int.blue()

返回颜色整数的 blue 分量。

Int Int.green()

返回颜色整数的 green 分量。

Float Int.luminance()

返回颜色整数的相对亮度,假设使用 sRGB 编码。

Int Int.red()

返回颜色整数的 red 分量。

对于 kotlin.Long
Float Long.alpha()

返回颜色长整数的 alpha 分量。

Float Long.blue()

返回颜色长整数的 blue 分量。

颜色空间 Long.colorSpace()

返回指定颜色长整数中编码的颜色空间。

Float Long.green()

返回颜色长整数的 green 分量。

布尔值 Long.isSrgb()

指示颜色是否在 sRGB 颜色空间中。

布尔值 Long.isWideGamut()

指示颜色是否在 广色域 颜色空间中。

Float Long.luminance()

返回颜色的相对亮度。

Float Long.red()

返回颜色长整数的 red 分量。

顶层函数

Bitmap createBitmap(width: Int, height: Int, config: Config = Bitmap.Config.ARGB_8888)

返回具有指定 宽度高度 的可变位图。

Bitmap createBitmap(width: Int, height: Int, config: Config = Bitmap.Config.ARGB_8888, hasAlpha: Boolean = true, colorSpace: ColorSpace = ColorSpace.get(ColorSpace.Named.SRGB))

返回具有指定 widthheight 的可变位图。

矩阵 rotationMatrix(degrees: Float, px: Float = 0.0f, py: Float = 0.0f)

创建一个旋转矩阵,由绕位于坐标 (pxpy) 处的枢轴点的旋转角度(以度为单位)定义。

矩阵 scaleMatrix(sx: Float = 1.0f, sy: Float = 1.0f)

创建一个缩放矩阵,其在 xy 轴上的缩放因子分别为 sxsy

矩阵 translationMatrix(tx: Float = 0.0f, ty: Float = 0.0f)

创建一个平移矩阵,其在 xy 轴上的平移量分别为 txty

androidx.core.graphics.drawable

依赖项

Groovy

dependencies {
    implementation "androidx.core:core-ktx:1.13.1"
}

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.13.1")
}

扩展函数

用于 android.graphics.Bitmap
图标 Bitmap.toAdaptiveIcon()

从此自适应 Bitmap 创建一个 Icon

BitmapDrawable Bitmap.toDrawable(resources: Resources)

从此 Bitmap 创建一个 BitmapDrawable

图标 Bitmap.toIcon()

从此 Bitmap 创建一个 Icon

对于 android.graphics.Color
ColorDrawable Color.toDrawable()

从此 Color(通过 Color.toArgb)创建一个 ColorDrawable

对于 android.graphics.drawable.Drawable
Bitmap Drawable.toBitmap(@Px width: Int = intrinsicWidth, @Px height: Int = intrinsicHeight, config: Config? = null)

返回此 DrawableBitmap 表示形式。

Unit Drawable.updateBounds(@Px left: Int = bounds.left, @Px top: Int = bounds.top, @Px right: Int = bounds.right, @Px bottom: Int = bounds.bottom)

更新此 drawable 的边界。

对于 android.net.Uri
图标 Uri.toIcon()

从此 Uri 创建一个 Icon

对于 kotlin.ByteArray
图标 ByteArray.toIcon()

从此 ByteArray 创建一个 Icon

对于 kotlin.Int
ColorDrawable Int.toDrawable()

从此颜色值创建一个 ColorDrawable

androidx.core.location

依赖项

Groovy

dependencies {
    implementation "androidx.core:core-ktx:1.13.1"
}

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.13.1")
}

扩展函数

对于 android.location.Location
operator Double Location.component1()

返回此 Location 的纬度。

operator Double Location.component2()

返回此 Location 的经度。

androidx.core.net

依赖项

Groovy

dependencies {
    implementation "androidx.core:core-ktx:1.13.1"
}

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.13.1")
}

扩展函数

对于 android.net.Uri
文件 Uri.toFile()

从给定的 Uri 创建一个 File

对于 java.io.File
Uri File.toUri()

从给定文件创建一个 Uri。

对于 kotlin.String
Uri String.toUri()

从给定的编码 URI 字符串创建一个 Uri。

androidx.core.os

依赖项

Groovy

dependencies {
    implementation "androidx.core:core-ktx:1.13.1"
}

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.13.1")
}

扩展函数

对于 android.os.Handler
Runnable Handler.postAtTime(uptimeMillis: Long, token: Any? = null, crossinline action: () -> Unit)

Handler.postAtTime 的版本重新排序了参数,允许操作放置在括号之外。

Runnable Handler.postDelayed(delayInMillis: Long, token: Any? = null, crossinline action: () -> Unit)

Handler.postDelayed 的版本,它重新排序了参数,允许将操作放在括号之外。

顶层函数

Bundle bundleOf(vararg pairs: Pair<String, Any?>)

返回一个新的 Bundle,其中包含给定的键/值对作为元素。

PersistableBundle persistableBundleOf(vararg pairs: Pair<String, Any?>)

返回一个新的 PersistableBundle,其中包含给定的键/值对作为元素。

T trace(sectionName: String, block: () -> T)

使用 Trace.beginSection (使用提供的 sectionName)和 Trace.endSection 包装指定的 block

androidx.core.text

依赖项

Groovy

dependencies {
    implementation "androidx.core:core-ktx:1.13.1"
}

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.13.1")
}

扩展函数

对于 android.text.Spannable
Unit Spannable.clearSpans()

从此文本中清除所有跨度。

operator Unit Spannable.set(start: Int, end: Int, span: Any)

span 添加到文本的 start&hellip;end 范围内。

operator Unit Spannable.set(range: IntRange, span: Any)

span 添加到文本的 range 范围内。

对于 android.text.SpannableStringBuilder
SpannableStringBuilder SpannableStringBuilder.backgroundColor(color: Int, builderAction: SpannableStringBuilder.() -> Unit)

builderAction 中附加的文本包装在 BackgroundColorSpan 中。

SpannableStringBuilder SpannableStringBuilder.bold(builderAction: SpannableStringBuilder.() -> Unit)

builderAction 中附加的文本包装在粗体 StyleSpan 中。

SpannableStringBuilder SpannableStringBuilder.color(color: Int, builderAction: SpannableStringBuilder.() -> Unit)

builderAction 中附加的文本包装在 ForegroundColorSpan 中。

SpannableStringBuilder SpannableStringBuilder.inSpans(vararg spans: Any, builderAction: SpannableStringBuilder.() -> Unit)

builderAction 中附加的文本包装在 spans 中。

SpannableStringBuilder SpannableStringBuilder.inSpans(span: Any, builderAction: SpannableStringBuilder.() -> Unit)

builderAction 中附加的文本包装在 span 中。

SpannableStringBuilder SpannableStringBuilder.italic(builderAction: SpannableStringBuilder.() -> Unit)

builderAction 中附加的文本包装在斜体 StyleSpan 中。

SpannableStringBuilder SpannableStringBuilder.scale(proportion: Float, builderAction: SpannableStringBuilder.() -> Unit)

builderAction 中附加的文本包装在 RelativeSizeSpan 中。

SpannableStringBuilder SpannableStringBuilder.strikeThrough(builderAction: SpannableStringBuilder.() -> Unit)

将附加的文本包装在 builderAction 中的 StrikethroughSpan 中。

SpannableStringBuilder SpannableStringBuilder.subscript(builderAction: SpannableStringBuilder.() -> Unit)

将附加的文本包装在 builderAction 中的 SubscriptSpan 中。

SpannableStringBuilder SpannableStringBuilder.superscript(builderAction: SpannableStringBuilder.() -> Unit)

将附加的文本包装在 builderAction 中的 SuperscriptSpan 中。

SpannableStringBuilder SpannableStringBuilder.underline(builderAction: SpannableStringBuilder.() -> Unit)

将附加的文本包装在 builderAction 中的 UnderlineSpan 中。

对于 android.text.Spanned
Array<out T> Spanned.getSpans(start: Int = 0, end: Int = length)

获取所有为 T 实例的跨度。

字符串 Spanned.toHtml(option: Int = TO_HTML_PARAGRAPH_LINES_CONSECUTIVE)

从此 Spanned 中的跨度返回 HTML 字符串。

对于 kotlin.CharSequence
布尔值 CharSequence.isDigitsOnly()

返回给定的 CharSequence 是否仅包含数字。

Spannable CharSequence.toSpannable()

CharSequence 返回一个新的 Spannable,如果它已经是 SpannableString 的实例,则返回源本身。

Spanned CharSequence.toSpanned()

CharSequence 返回一个新的 Spanned,如果它已经是 SpannedString 的实例,则返回源本身。

Int CharSequence.trimmedLength()

返回指定的 CharSequence 的长度,如果空格和 ASCII 控制字符从开头和结尾被修剪,就像 String.trim 一样。

对于 kotlin.String
字符串 String.htmlEncode()

对字符串进行 HTML 编码。

Spanned String.parseAsHtml(flags: Int = FROM_HTML_MODE_LEGACY, imageGetter: ImageGetter? = null, tagHandler: TagHandler? = null)

从将此字符串解析为 HTML 返回 Spanned

扩展属性

对于 java.util.Locale
Int Locale.layoutDirection()

返回给定区域设置的布局方向。

顶层函数

SpannedString buildSpannedString(builderAction: SpannableStringBuilder.() -> Unit)

通过使用提供的 builderAction 填充新创建的 SpannableStringBuilder,然后将其转换为 SpannedString 来构建新字符串。

androidx.core.transition

依赖项

Groovy

dependencies {
    implementation "androidx.core:core-ktx:1.13.1"
}

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.13.1")
}

扩展函数

对于 android.transition.Transition
TransitionListener Transition.addListener(crossinline onEnd: (transition: Transition) -> Unit = {}, crossinline onStart: (transition: Transition) -> Unit = {}, crossinline onCancel: (transition: Transition) -> Unit = {}, crossinline onResume: (transition: Transition) -> Unit = {}, crossinline onPause: (transition: Transition) -> Unit = {})

使用提供的操作将侦听器添加到此 Transition。

TransitionListener Transition.doOnCancel(crossinline action: (transition: Transition) -> Unit)

添加一个在该过渡被取消时调用的操作。

TransitionListener Transition.doOnEnd(crossinline action: (transition: Transition) -> Unit)

添加一个在该过渡结束后调用的操作。

TransitionListener Transition.doOnPause(crossinline action: (transition: Transition) -> Unit)

添加一个在该过渡被暂停时调用的操作。

TransitionListener Transition.doOnResume(crossinline action: (transition: Transition) -> Unit)

添加一个在该过渡在暂停后恢复时调用的操作。

TransitionListener Transition.doOnStart(crossinline action: (transition: Transition) -> Unit)

添加一个在该过渡开始时调用的操作。

androidx.core.util

依赖项

Groovy

dependencies {
    implementation "androidx.core:core-ktx:1.13.1"
}

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.13.1")
}

扩展函数

对于 android.util.AtomicFile
字节数组 AtomicFile.readBytes()

将该文件的所有内容作为字节数组获取。

字符串 AtomicFile.readText(charset: Charset = Charsets.UTF_8)

使用 UTF-8 或指定的 charset 将该文件的所有内容作为字符串获取。

Unit AtomicFile.tryWrite(block: (out: FileOutputStream) -> Unit)

对该文件执行 block 中的写入操作。

Unit AtomicFile.writeBytes(array: ByteArray)

将该文件的内容设置为 array 中的字节。

Unit AtomicFile.writeText(text: String, charset: Charset = Charsets.UTF_8)

将该文件的内容设置为 text,使用 UTF-8 或指定的 charset 进行编码。

对于 android.util.LongSparseArray
operator Boolean LongSparseArray<T>.contains(key: Long)

如果集合包含 key,则返回 true。

布尔值 LongSparseArray<T>.containsKey(key: Long)

如果集合包含 key,则返回 true。

布尔值 LongSparseArray<T>.containsValue(value: T)

如果集合包含 value,则返回 true。

Unit LongSparseArray<T>.forEach(action: (key: Long, value: T) -> Unit)

对每个键值对执行给定的 action

T LongSparseArray<T>.getOrDefault(key: Long, defaultValue: T)

返回与 key 对应的值,如果不存在,则返回 defaultValue

T LongSparseArray<T>.getOrElse(key: Long, defaultValue: () -> T)

返回与 key 对应的值,如果不存在,则返回 defaultValue

布尔值 LongSparseArray<T>.isEmpty()

如果集合不包含任何元素,则返回 true。

布尔值 LongSparseArray<T>.isNotEmpty()

如果集合包含元素,则返回 true。

LongIterator LongSparseArray<T>.keyIterator()

返回集合键的迭代器。

operator LongSparseArray<T> LongSparseArray<T>.plus(other: LongSparseArray<T>)

通过添加或替换来自 other 的条目,创建一个新的集合。

Unit LongSparseArray<T>.putAll(other: LongSparseArray<T>)

通过添加或替换来自 other 的条目来更新此集合。

布尔值 LongSparseArray<T>.remove(key: Long, value: T)

仅当 key 映射到 value 时,删除 key 的条目。

operator Unit LongSparseArray<T>.set(key: Long, value: T)

允许使用索引运算符在集合中存储值。

Iterator<T> LongSparseArray<T>.valueIterator()

返回集合值的迭代器。

对于 android.util.Pair
operator F Pair<F, S>.component1()

返回该对的第一个组成部分。

operator S Pair<F, S>.component2()

返回该对的第二个组成部分。

Pair<F, S> Pair<F, S>.toKotlinPair()

将此 Pair 返回为 kotlin.Pair

对于 android.util.Range
infix Range<T> Range<T>.and(other: Range<T>)

返回此范围与 other 的交集。

operator Range<T> Range<T>.plus(value: T)

返回包含此范围和 value 的最小范围。

operator Range<T> Range<T>.plus(other: Range<T>)

返回包含此范围和 other 的最小范围。

ClosedRange<T> Range<T>.toClosedRange()

将此 Range 返回为 ClosedRange

对于 android.util.Size
operator Int Size.component1()

返回 "width",此 Size 的第一个组成部分。

operator Int Size.component2()

返回 "height",此 Size 的第二个组成部分。

对于 android.util.SizeF
operator Float SizeF.component1()

返回 "width",此 SizeF 的第一个组成部分。

operator Float SizeF.component2()

返回 "height",此 SizeF 的第二个组成部分。

对于 android.util.SparseArray
operator Boolean SparseArray<T>.contains(key: Int)

如果集合包含 key,则返回 true。

布尔值 SparseArray<T>.containsKey(key: Int)

如果集合包含 key,则返回 true。

布尔值 SparseArray<T>.containsValue(value: T)

如果集合包含 value,则返回 true。

Unit SparseArray<T>.forEach(action: (key: Int, value: T) -> Unit)

对每个键/值条目执行给定的 action

T SparseArray<T>.getOrDefault(key: Int, defaultValue: T)

返回对应于 key 的值,或者当不存在时返回 defaultValue

T SparseArray<T>.getOrElse(key: Int, defaultValue: () -> T)

返回对应于 key 的值,或者当不存在时从 defaultValue 返回。

布尔值 SparseArray<T>.isEmpty()

如果集合不包含任何元素,则返回 true。

布尔值 SparseArray<T>.isNotEmpty()

如果集合包含元素,则返回 true。

IntIterator SparseArray<T>.keyIterator()

返回集合键的迭代器。

operator SparseArray<T> SparseArray<T>.plus(other: SparseArray<T>)

通过添加或替换来自 other 的条目来创建一个新的集合。

Unit SparseArray<T>.putAll(other: SparseArray<T>)

通过添加或替换来自 other 的条目来更新此集合。

布尔值 SparseArray<T>.remove(key: Int, value: T)

仅当 key 映射到 value 时,删除 key 的条目。

operator Unit SparseArray<T>.set(key: Int, value: T)

允许使用索引运算符在集合中存储值。

Iterator<T> SparseArray<T>.valueIterator()

返回集合值的迭代器。

对于 android.util.SparseBooleanArray
operator Boolean SparseBooleanArray.contains(key: Int)

如果集合包含 key,则返回 true。

布尔值 SparseBooleanArray.containsKey(key: Int)

如果集合包含 key,则返回 true。

布尔值 SparseBooleanArray.containsValue(value: Boolean)

如果集合包含 value,则返回 true。

Unit SparseBooleanArray.forEach(action: (key: Int, value: Boolean) -> Unit)

对每个键/值条目执行给定的 action

布尔值 SparseBooleanArray.getOrDefault(key: Int, defaultValue: Boolean)

返回与 key 对应的值,或当不存在时返回 defaultValue

布尔值 SparseBooleanArray.getOrElse(key: Int, defaultValue: () -> Boolean)

返回与 key 对应的值,或当不存在时返回 defaultValue

布尔值 SparseBooleanArray.isEmpty()

如果集合不包含任何元素,则返回 true。

布尔值 SparseBooleanArray.isNotEmpty()

如果集合包含元素,则返回 true。

IntIterator SparseBooleanArray.keyIterator()

返回集合键的迭代器。

operator SparseBooleanArray SparseBooleanArray.plus(other: SparseBooleanArray)

通过添加或替换来自 other 的条目来创建一个新的集合。

Unit SparseBooleanArray.putAll(other: SparseBooleanArray)

通过添加或替换来自 other 的条目来更新此集合。

布尔值 SparseBooleanArray.remove(key: Int, value: Boolean)

仅当 key 映射到 value 时,删除 key 的条目。

operator Unit SparseBooleanArray.set(key: Int, value: Boolean)

允许使用索引运算符在集合中存储值。

BooleanIterator SparseBooleanArray.valueIterator()

返回集合值的迭代器。

对于 android.util.SparseIntArray
operator Boolean SparseIntArray.contains(key: Int)

如果集合包含 key,则返回 true。

布尔值 SparseIntArray.containsKey(key: Int)

如果集合包含 key,则返回 true。

布尔值 SparseIntArray.containsValue(value: Int)

如果集合包含 value,则返回 true。

Unit SparseIntArray.forEach(action: (key: Int, value: Int) -> Unit)

对每个键值对执行给定的 action

Int SparseIntArray.getOrDefault(key: Int, defaultValue: Int)

返回与 key 对应的值,如果不存在则返回 defaultValue

Int SparseIntArray.getOrElse(key: Int, defaultValue: () -> Int)

返回与 key 对应的值,如果不存在则从 defaultValue 返回。

布尔值 SparseIntArray.isEmpty()

如果集合不包含任何元素,则返回 true。

布尔值 SparseIntArray.isNotEmpty()

如果集合包含元素,则返回 true。

IntIterator SparseIntArray.keyIterator()

返回集合键的迭代器。

operator SparseIntArray SparseIntArray.plus(other: SparseIntArray)

通过添加或替换来自 other 的条目来创建一个新的集合。

Unit SparseIntArray.putAll(other: SparseIntArray)

通过添加或替换来自 other 的条目来更新此集合。

布尔值 SparseIntArray.remove(key: Int, value: Int)

仅当 key 映射到 value 时,移除该 key 的条目。

operator Unit SparseIntArray.set(key: Int, value: Int)

允许使用索引运算符在集合中存储值。

IntIterator SparseIntArray.valueIterator()

返回集合值的迭代器。

对于 android.util.SparseLongArray
operator Boolean SparseLongArray.contains(key: Int)

如果集合包含 key,则返回 true。

布尔值 SparseLongArray.containsKey(key: Int)

如果集合包含 key,则返回 true。

布尔值 SparseLongArray.containsValue(value: Long)

如果集合包含 value,则返回 true。

Unit SparseLongArray.forEach(action: (key: Int, value: Long) -> Unit)

对每个键值对执行给定的 action

长整数 SparseLongArray.getOrDefault(key: Int, defaultValue: Long)

返回与 key 对应的值,如果不存在则返回 defaultValue

长整数 SparseLongArray.getOrElse(key: Int, defaultValue: () -> Long)

返回与 key 对应的值,如果不存在则从 defaultValue 返回。

布尔值 SparseLongArray.isEmpty()

如果集合不包含任何元素,则返回 true。

布尔值 SparseLongArray.isNotEmpty()

如果集合包含元素,则返回 true。

IntIterator SparseLongArray.keyIterator()

返回集合键的迭代器。

operator SparseLongArray SparseLongArray.plus(other: SparseLongArray)

通过添加或替换来自 other 的条目来创建一个新的集合。

Unit SparseLongArray.putAll(other: SparseLongArray)

通过添加或替换来自 other 的条目来更新此集合。

布尔值 SparseLongArray.remove(key: Int, value: Long)

仅当 key 设置为 value 时,移除该 key 的条目。

operator Unit SparseLongArray.set(key: Int, value: Long)

允许使用索引运算符在集合中存储值。

LongIterator SparseLongArray.valueIterator()

返回集合值的迭代器。

对于 kotlin.Double
一半 Double.toHalf()

返回表示给定 Half 实例的 Double

对于 kotlin.Float
一半 Float.toHalf()

返回表示给定 FloatHalf 实例。

对于 kotlin.Pair
Pair<F, S> Pair<F, S>.toAndroidPair()

将此 kotlin.Pair 作为 Android Pair 返回。

对于 kotlin.Short
一半 Short.toHalf()

返回表示给定 ShortHalf 实例。

对于 kotlin.String
一半 String.toHalf()

返回表示给定 StringHalf 实例。

对于 kotlin.ranges.ClosedRange
Range<T> ClosedRange<T>.toRange()

将此 ClosedRange 作为 Range 返回。

扩展属性

对于 android.util.LongSparseArray
Int LongSparseArray<T>.size()

返回集合中键值对的数量。

对于 android.util.SparseArray
Int SparseArray<T>.size()

返回集合中键值对的数量。

对于 android.util.SparseBooleanArray
Int SparseBooleanArray.size()

返回集合中键值对的数量。

对于 android.util.SparseIntArray
Int SparseIntArray.size()

返回集合中键值对的数量。

对于 android.util.SparseLongArray
Int SparseLongArray.size()

返回集合中键值对的个数。

顶层函数

LruCache<K, V> lruCache(maxSize: Int, crossinline sizeOf: (key: K, value: V) -> Int = { _, _ -> 1 }, crossinline create: (key: K) -> V? = { null as V? }, crossinline onEntryRemoved: (evicted: Boolean, key: K, oldValue: V, newValue: V?) -> Unit = { _, _, _, _ -> })

使用给定参数创建 LruCache

infix Range<T> T.rangeTo(that: T)

从此 Comparable 值到 that 创建一个范围。

androidx.core.view

依赖项

Groovy

dependencies {
    implementation "androidx.core:core-ktx:1.13.1"
}

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.13.1")
}

扩展函数

对于 android.view.Menu
operator Boolean Menu.contains(item: MenuItem)

如果在该菜单中找到 item,则返回 true

Unit Menu.forEach(action: (item: MenuItem) -> Unit)

对该菜单中的每个项目执行给定操作。

Unit Menu.forEachIndexed(action: (index: Int, item: MenuItem) -> Unit)

对该菜单中的每个项目执行给定操作,提供其顺序索引。

operator MenuItem Menu.get(index: Int)

返回 index 处的菜单。

布尔值 Menu.isEmpty()

如果该菜单不包含任何项目,则返回 true。

布尔值 Menu.isNotEmpty()

如果该菜单包含一个或多个项目,则返回 true。

operator MutableIterator<MenuItem> Menu.iterator()

返回该菜单中项目的 MutableIterator

operator Unit Menu.minusAssign(item: MenuItem)

从该菜单中删除 item

对于 android.view.View
Unit View.doOnAttach(crossinline action: (view: View) -> Unit)

当此视图附加到窗口时,执行给定操作。

Unit View.doOnDetach(crossinline action: (view: View) -> Unit)

当此视图从窗口分离时,执行给定操作。

Unit View.doOnLayout(crossinline action: (view: View) -> Unit)

当此视图布局完毕时,执行给定操作。

Unit View.doOnNextLayout(crossinline action: (view: View) -> Unit)

当此视图下次布局时执行给定的操作。

OneShotPreDrawListener View.doOnPreDraw(crossinline action: (view: View) -> Unit)

当视图树即将绘制时执行给定的操作。

Bitmap View.drawToBitmap(config: Config = Bitmap.Config.ARGB_8888)

返回此 ViewBitmap 表示。

Runnable View.postDelayed(delayInMillis: Long, crossinline action: () -> Unit)

View.postDelayed 的版本,重新排序参数,允许将操作放在括号之外。

Runnable View.postOnAnimationDelayed(delayInMillis: Long, crossinline action: () -> Unit)

View.postOnAnimationDelayed 的版本,重新排序参数,允许将操作放在括号之外。

Unit View.setPadding(@Px size: Int)

设置视图的填充。

Unit View.updateLayoutParams(block: LayoutParams.() -> Unit)

使用视图的 layoutParams 执行 block,并使用更新后的版本重新分配 layoutParams。

Unit View.updateLayoutParams(block: T.() -> Unit)

使用视图的 layoutParams 的类型化版本执行 block,并使用更新后的版本重新分配 layoutParams。

Unit View.updatePadding(@Px left: Int = paddingLeft, @Px top: Int = paddingTop, @Px right: Int = paddingRight, @Px bottom: Int = paddingBottom)

更新此视图的填充。

Unit View.updatePaddingRelative(@Px start: Int = paddingStart, @Px top: Int = paddingTop, @Px end: Int = paddingEnd, @Px bottom: Int = paddingBottom)

更新此视图的相对填充。

对于 android.view.ViewGroup
operator Boolean ViewGroup.contains(view: View)

如果在此视图组中找到 view,则返回 true

Unit ViewGroup.forEach(action: (view: View) -> Unit)

对在此视图组中的每个视图执行给定的操作。

Unit ViewGroup.forEachIndexed(action: (index: Int, view: View) -> Unit)

对在此视图组中的每个视图执行给定的操作,提供其顺序索引。

operator View ViewGroup.get(index: Int)

返回 index 处的视图。

布尔值 ViewGroup.isEmpty()

如果此视图组不包含任何视图,则返回 true。

布尔值 ViewGroup.isNotEmpty()

如果此视图组包含一个或多个视图,则返回 true。

operator MutableIterator<View> ViewGroup.iterator()

返回此视图组中视图的 MutableIterator

operator Unit ViewGroup.minusAssign(view: View)

从此视图组中移除 view

operator Unit ViewGroup.plusAssign(view: View)

向此视图组添加 view

对于 android.view.ViewGroup.MarginLayoutParams
Unit MarginLayoutParams.setMargins(@Px size: Int)

设置 ViewGroup 中 MarginLayoutParams 的边距。

Unit MarginLayoutParams.updateMargins(@Px left: Int = leftMargin, @Px top: Int = topMargin, @Px right: Int = rightMargin, @Px bottom: Int = bottomMargin)

更新 ViewGroup 中 MarginLayoutParams 的边距。

Unit MarginLayoutParams.updateMarginsRelative(@Px start: Int = marginStart, @Px top: Int = topMargin, @Px end: Int = marginEnd, @Px bottom: Int = bottomMargin)

更新 ViewGroup 中 MarginLayoutParams 的相对边距。

扩展属性

对于 android.view.Menu
Sequence<MenuItem> Menu.children()

返回此菜单中项的 Sequence

Int Menu.size()

返回此菜单中项的数量。

对于 android.view.View
布尔值 View.isGone()

如果此视图的可见性为 View.GONE,则返回 true,否则返回 false。

布尔值 View.isInvisible()

如果此视图的可见性为 View.INVISIBLE,则返回 true,否则返回 false。

布尔值 View.isVisible()

如果此视图的可见性为 View.VISIBLE,则返回 true,否则返回 false。

Int View.marginBottom()

如果此视图的 LayoutParamsViewGroup.MarginLayoutParams,则返回底部边距,否则返回 0。

Int View.marginEnd()

如果此视图的 LayoutParamsViewGroup.MarginLayoutParams,则返回结束边距,否则返回 0。

Int View.marginLeft()

如果此视图的 LayoutParamsViewGroup.MarginLayoutParams,则返回左侧边距,否则返回 0。

Int View.marginRight()

如果此视图的 LayoutParamsViewGroup.MarginLayoutParams,则返回右侧边距,否则返回 0。

Int View.marginStart()

如果此视图的 LayoutParamsViewGroup.MarginLayoutParams,则返回开始边距,否则返回 0。

Int View.marginTop()

如果此视图的 LayoutParamsViewGroup.MarginLayoutParams,则返回顶部边距,否则返回 0。

对于 android.view.ViewGroup
Sequence<View> ViewGroup.children()

返回此视图组中子视图的 Sequence

Int ViewGroup.size()

返回此视图组中视图的数量。

androidx.core.widget

依赖项

Groovy

dependencies {
    implementation "androidx.core:core-ktx:1.13.1"
}

Kotlin

dependencies {
    implementation("androidx.core:core-ktx:1.13.1")
}

扩展函数

对于 android.widget.TextView
TextWatcher TextView.addTextChangedListener(crossinline beforeTextChanged: (text: CharSequence?, start: Int, count: Int, after: Int) -> Unit = { _, _, _, _ -> }, crossinline onTextChanged: (text: CharSequence?, start: Int, count: Int, after: Int) -> Unit = { _, _, _, _ -> }, crossinline afterTextChanged: (text: Editable?) -> Unit = {})

使用提供的操作将文本更改监听器添加到此 TextView

TextWatcher TextView.doAfterTextChanged(crossinline action: (text: Editable?) -> Unit)

添加一个在文本更改后将被调用的操作。

TextWatcher TextView.doBeforeTextChanged(crossinline action: (text: CharSequence?, start: Int, count: Int, after: Int) -> Unit)

添加一个在文本更改之前将被调用的操作。

TextWatcher TextView.doOnTextChanged(crossinline action: (text: CharSequence?, start: Int, count: Int, after: Int) -> Unit)

添加一个当文本发生变化时调用的操作。

androidx.dynamicanimation.animation

依赖项

Groovy

dependencies {
    implementation "androidx.dynamicanimation:dynamicanimation-ktx:1.1.0-alpha03"
}

Kotlin

dependencies {
    implementation("androidx.dynamicanimation:dynamicanimation-ktx:1.1.0-alpha03")
}

扩展函数

针对 SpringAnimation
SpringAnimation SpringAnimation.withSpringForceProperties(func: SpringForce.() -> Unit)

更新或应用弹簧力属性,例如 SpringForce.mDampingRatioSpringForce.mFinalPosition 和 SpringAnimation 上的刚度。

顶层函数

FlingAnimation flingAnimationOf(setter: (Float) -> Unit, getter: () -> Float)

为可以通过提供的设置器和获取器访问的属性创建 FlingAnimation

SpringAnimation springAnimationOf(setter: (Float) -> Unit, getter: () -> Float, finalPosition: Float = Float.NaN)

为可以通过提供的设置器和获取器访问的属性创建 SpringAnimation

androidx.fragment.app

依赖项

Groovy

dependencies {
    implementation "androidx.fragment:fragment-ktx:1.8.3"
}

Kotlin

dependencies {
    implementation("androidx.fragment:fragment-ktx:1.8.3")
}

扩展函数

对于 android.view.View
F View.findFragment()

查找与 View 关联的 Fragment

针对 Fragment
Lazy<VM> Fragment.activityViewModels(noinline factoryProducer: () -> ViewModelProvider.Factory = null)

返回一个属性委托,以访问父 Activity 的 ViewModel。如果指定了 factoryProducer,则将使用它返回的 ViewModelProvider.Factory 在第一次创建 ViewModel 时。

Lazy<VM> Fragment.createViewModelLazy(viewModelClass: KClass<VM>, storeProducer: () -> ViewModelStore, factoryProducer: () -> ViewModelProvider.Factory = null)

用于创建 ViewModelLazy 的辅助方法,该方法将传递给 factoryProducernull 解析为默认工厂。

Lazy<VM> Fragment.viewModels(noinline ownerProducer: () -> ViewModelStoreOwner = { this }, noinline factoryProducer: () -> ViewModelProvider.Factory = null)

返回一个属性委托,以访问默认作用域到此 FragmentViewModel

针对 FragmentTransaction
FragmentTransaction FragmentTransaction.add(@IdRes containerViewId: Int, tag: String? = null, args: Bundle? = null)

将一个 Fragment 添加到关联的 FragmentManager,将 Fragment 的视图膨胀到由 containerViewId 指定的容器视图中,以便稍后通过 FragmentManager.findFragmentById 检索。

FragmentTransaction FragmentTransaction.add(tag: String, args: Bundle? = null)

将一个 Fragment 添加到关联的 FragmentManager,而不将 Fragment 添加到任何容器视图。

FragmentTransaction FragmentTransaction.replace(@IdRes containerViewId: Int, tag: String? = null, args: Bundle? = null)

替换添加到容器中的现有 Fragment。

针对 FragmentManager
Unit FragmentManager.commit(allowStateLoss: Boolean = false, body: FragmentTransaction.() -> Unit)

FragmentTransaction 中运行 body,如果它在没有异常的情况下完成,它将自动提交。

Unit FragmentManager.commitNow(allowStateLoss: Boolean = false, body: FragmentTransaction.() -> Unit)

FragmentTransaction 中运行 body,如果它在没有异常的情况下完成,则会自动提交。

Unit FragmentManager.transaction(now: Boolean = false, allowStateLoss: Boolean = false, body: FragmentTransaction.() -> Unit)

FragmentTransaction 中运行 body,如果它在没有异常的情况下完成,则会自动提交。

androidx.fragment.app.testing

依赖项

Groovy

dependencies {
    implementation "androidx.fragment:fragment-testing:1.8.3"
}

Kotlin

dependencies {
    implementation("androidx.fragment:fragment-testing:1.8.3")
}

顶层函数

FragmentScenario<F!> launchFragment(fragmentArgs: Bundle? = null, @StyleRes themeResId: Int = R.style.FragmentScenarioEmptyFragmentActivityTheme, factory: FragmentFactory? = null)

使用给定的 FragmentFactory 在一个空的 FragmentActivity 中启动一个带有给定参数的 Fragment,并等待它到达恢复状态。

FragmentScenario<F!> launchFragment(fragmentArgs: Bundle? = null, @StyleRes themeResId: Int = R.style.FragmentScenarioEmptyFragmentActivityTheme, crossinline instantiate: () -> F)

使用 instantiate 在一个空的 FragmentActivity 中启动一个带有给定参数的 Fragment,并等待它到达恢复状态。

FragmentScenario<F!> launchFragmentInContainer(fragmentArgs: Bundle? = null, @StyleRes themeResId: Int = R.style.FragmentScenarioEmptyFragmentActivityTheme, factory: FragmentFactory? = null)

在 Activity 的根视图容器 android.R.id.content 中启动一个 Fragment,带有给定的参数,由一个空的 FragmentActivity 托管,并等待它到达恢复状态。

FragmentScenario<F!> launchFragmentInContainer(fragmentArgs: Bundle? = null, @StyleRes themeResId: Int = R.style.FragmentScenarioEmptyFragmentActivityTheme, crossinline instantiate: () -> F)

在 Activity 的根视图容器 android.R.id.content 中启动一个 Fragment,带有给定的参数,由一个空的 FragmentActivity 托管,使用 instantiate 创建 Fragment 并等待它到达恢复状态。

androidx.lifecycle

依赖项

Groovy

dependencies {
    implementation "androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.5"
    implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.8.5"
    implementation "androidx.lifecycle:lifecycle-reactivestreams-ktx:2.8.5"
    implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.8.5"
    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.5"
}

Kotlin

dependencies {
    implementation("androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.5")
    implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.8.5")
    implementation("androidx.lifecycle:lifecycle-reactivestreams-ktx:2.8.5")
    implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.8.5")
    implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.5")
}

扩展函数

对于 kotlinx.coroutines.flow.Flow
LiveData<T> Flow<T>.asLiveData(context: CoroutineContext = EmptyCoroutineContext, timeoutInMs: Long = DEFAULT_TIMEOUT)

创建一个 LiveData,它包含从原始 Flow 收集的值。

LiveData<T> Flow<T>.asLiveData(context: CoroutineContext = EmptyCoroutineContext, timeout: Duration)

创建一个 LiveData,它包含从原始 Flow 收集的值。

对于 org.reactivestreams.Publisher
LiveData<T> Publisher<T>.toLiveData()

从 ReactiveStreams Publisher 创建一个可观察的 LiveData 流。

对于 LiveData
Flow<T> LiveData<T>.asFlow()

创建一个 Flow,它包含由原始 LiveData 分派的 值:在开始时,流收集器接收 LiveData 持有的最新值,然后观察 LiveData 更新。

LiveData<X> LiveData<X>.distinctUntilChanged()

创建一个新的 LiveData 对象,直到源 this LiveData 值发生变化才会发出值。

LiveData<Y> LiveData<X>.map(crossinline transform: (X) -> Y)

返回一个 LiveData,它从 this LiveData 映射而来,通过将 transform 应用于 this LiveData 上设置的每个值。

Observer<T> LiveData<T>.observe(owner: LifecycleOwner, crossinline onChanged: (T) -> Unit)

在给定owner的生命周期内,添加给定的onChanged lambda 作为观察者,并返回对观察者的引用。

LiveData<Y> LiveData<X>.switchMap(crossinline transform: (X) -> LiveData<Y>)

返回一个LiveData,它通过将transform应用于设置在this上的每个值,从输入this LiveData映射而来。

Publisher<T> LiveData<T>.toPublisher(lifecycle: LifecycleOwner)

将给定的LiveData流适配为 ReactiveStreams Publisher

对于ViewModelProvider
VM ViewModelProvider.get()

返回与该ViewModelProvider关联的现有 ViewModel,或者在范围(通常是片段或活动)内创建新的 ViewModel。

对于LifecycleOwner
suspend T LifecycleOwner.whenCreated(block: suspend CoroutineScope.() -> T)

LifecycleOwnerLifecycle至少处于Lifecycle.State.CREATED状态时,运行给定的块。

suspend T LifecycleOwner.whenResumed(block: suspend CoroutineScope.() -> T)

LifecycleOwnerLifecycle至少处于Lifecycle.State.RESUMED状态时,运行给定的块。

suspend T LifecycleOwner.whenStarted(block: suspend CoroutineScope.() -> T)

LifecycleOwnerLifecycle至少处于Lifecycle.State.STARTED状态时,运行给定的块。

对于Lifecycle
suspend T Lifecycle.whenCreated(block: suspend CoroutineScope.() -> T)

Lifecycle至少处于Lifecycle.State.CREATED状态时,运行给定的块。

suspend T Lifecycle.whenResumed(block: suspend CoroutineScope.() -> T)

Lifecycle至少处于Lifecycle.State.RESUMED状态时,运行给定的块。

suspend T Lifecycle.whenStarted(block: suspend CoroutineScope.() -> T)

Lifecycle至少处于Lifecycle.State.STARTED状态时,运行给定的块。

suspend T Lifecycle.whenStateAtLeast(minState: Lifecycle.State, block: suspend CoroutineScope.() -> T)

在执行block的主线程上执行CoroutineDispatcher上运行给定的block,并暂停执行,除非Lifecycle的状态至少为minState

扩展属性

对于Lifecycle
LifecycleCoroutineScope Lifecycle.coroutineScope()

与该Lifecycle绑定的CoroutineScope

对于LifecycleOwner
LifecycleCoroutineScope LifecycleOwner.lifecycleScope()

与该LifecycleOwnerLifecycle绑定的CoroutineScope

对于ViewModel
CoroutineScope ViewModel.viewModelScope()

与该ViewModel绑定的CoroutineScope

顶层函数

LiveData<T> liveData(context: CoroutineContext = EmptyCoroutineContext, timeoutInMs: Long = DEFAULT_TIMEOUT, block: suspend LiveDataScope<T>.() -> Unit)

构建一个 LiveData,其值来自给定的 block,该 block 在 LiveDataScope 上执行。

LiveData<T> liveData(context: CoroutineContext = EmptyCoroutineContext, timeout: Duration, block: suspend LiveDataScope<T>.() -> Unit)

构建一个 LiveData,其值来自给定的 block,该 block 在 LiveDataScope 上执行。

androidx.navigation

依赖项

Groovy

dependencies {
    implementation "androidx.navigation:navigation-runtime-ktx:2.8.0"
    implementation "androidx.navigation:navigation-fragment-ktx:2.8.0"
    implementation "androidx.navigation:navigation-ui-ktx:2.8.0"
}

Kotlin

dependencies {
    implementation("androidx.navigation:navigation-runtime-ktx:2.8.0")
    implementation("androidx.navigation:navigation-fragment-ktx:2.8.0")
    implementation("androidx.navigation:navigation-ui-ktx:2.8.0")
}

扩展函数

对于 android.app.Activity
NavController Activity.findNavController(@IdRes viewId: Int)

查找给定 View 的 ID 和其包含的 ActivityNavController

NavArgsLazy<Args> Activity.navArgs()

返回一个 Lazy 代理,以访问 Activity 的 extras 作为 Args 实例。

对于 android.view.View
NavController View.findNavController()

查找与 View 关联的 NavController

对于 NavGraphBuilder
Unit NavGraphBuilder.activity(@IdRes id: Int, builder: ActivityNavigatorDestinationBuilder.() -> Unit)

构建一个新的 ActivityNavigator.Destination

Unit NavGraphBuilder.navigation(@IdRes id: Int, @IdRes startDestination: Int, builder: NavGraphBuilder.() -> Unit)

构建一个嵌套的 NavGraph

对于 NavGraph
operator Boolean NavGraph.contains(@IdRes id: Int)

如果在此导航图中找到具有 id 的目标,则返回 true

operator NavDestination NavGraph.get(@IdRes id: Int)

返回具有 id 的目标。

operator Unit NavGraph.minusAssign(node: NavDestination)

从此导航图中删除 node

operator Unit NavGraph.plusAssign(node: NavDestination)

向此 NavGraph 添加一个目标。

operator Unit NavGraph.plusAssign(other: NavGraph)

将另一个集合中的所有目标添加到此集合中。

对于 NavController
NavGraph NavController.createGraph(@IdRes id: Int = 0, @IdRes startDestination: Int, builder: NavGraphBuilder.() -> Unit)

构建一个新的 NavGraph

对于 NavHost
NavGraph NavHost.createGraph(@IdRes id: Int = 0, @IdRes startDestination: Int, builder: NavGraphBuilder.() -> Unit)

构建一个新的 NavGraph

对于 NavigatorProvider
operator T NavigatorProvider.get(name: String)

通过名称检索注册的 Navigator

operator T NavigatorProvider.get(clazz: KClass<T>)

使用 Navigator.Name 注释 提供的名称检索注册的 Navigator

NavGraph NavigatorProvider.navigation(@IdRes id: Int = 0, @IdRes startDestination: Int, builder: NavGraphBuilder.() -> Unit)

构建一个新的 NavGraph

operator Unit NavigatorProvider.plusAssign(navigator: Navigator<out NavDestination>)

使用 Navigator.Name 注解 提供的名称注册导航器。

operator Navigator<out NavDestination!>? NavigatorProvider.set(name: String, navigator: Navigator<out NavDestination>)

按名称注册一个 Navigator

针对 Fragment
Lazy<VM> Fragment.navGraphViewModels(@IdRes navGraphId: Int, noinline factoryProducer: () -> ViewModelProvider.Factory = null)

返回一个属性委托,用于访问作用域为 {@link NavController} 回退栈中存在的导航图的 ViewModel

顶层函数

ActivityNavigator.Extras ActivityNavigatorExtras(activityOptions: ActivityOptionsCompat? = null, flags: Int = 0)

使用特定的 ActivityOptionsCompat 实例和/或任何 Intent.FLAG_ACTIVITY_ 标志创建一个新的 ActivityNavigator.Extras 实例。

NavOptions navOptions(optionsBuilder: NavOptionsBuilder.() -> Unit)

构造一个新的 NavOptions

androidx.navigation.fragment

依赖项

Groovy

dependencies {
    implementation "androidx.navigation:navigation-fragment-ktx:2.8.0"
}

Kotlin

dependencies {
    implementation("androidx.navigation:navigation-fragment-ktx:2.8.0")
}

扩展函数

对于 NavGraphBuilder
Unit NavGraphBuilder.dialog(@IdRes id: Int)

构造一个新的 DialogFragmentNavigator.Destination

Unit NavGraphBuilder.dialog(@IdRes id: Int, builder: DialogFragmentNavigatorDestinationBuilder.() -> Unit)

构造一个新的 DialogFragmentNavigator.Destination

Unit NavGraphBuilder.fragment(@IdRes id: Int)

构造一个新的 FragmentNavigator.Destination

Unit NavGraphBuilder.fragment(@IdRes id: Int, builder: FragmentNavigatorDestinationBuilder.() -> Unit)

构造一个新的 FragmentNavigator.Destination

针对 Fragment
NavController Fragment.findNavController()

给定一个 Fragment 找到一个 NavController

NavArgsLazy<Args> Fragment.navArgs()

返回一个 Lazy 委托,用于访问 Fragment 的参数作为 Args 实例。

顶层函数

FragmentNavigator.Extras FragmentNavigatorExtras(vararg sharedElements: Pair<View, String>)

使用给定的共享元素创建一个新的 FragmentNavigator.Extras 实例。

androidx.navigation.ui

依赖项

Groovy

dependencies {
    implementation "androidx.navigation:navigation-ui-ktx:2.8.0"
}

Kotlin

dependencies {
    implementation("androidx.navigation:navigation-ui-ktx:2.8.0")
}

扩展函数

对于 android.view.MenuItem
布尔值 MenuItem.onNavDestinationSelected(navController: NavController)

尝试导航到与此 MenuItem 关联的 NavDestination

对于 androidx.appcompat.app.AppCompatActivity
Unit AppCompatActivity.setupActionBarWithNavController(navController: NavController, drawerLayout: DrawerLayout?)

使用 NavController 设置 AppCompatActivity.getSupportActionBar 返回的 ActionBar。

Unit AppCompatActivity.setupActionBarWithNavController(navController: NavController, configuration: AppBarConfiguration = AppBarConfiguration(navController.graph))

使用 NavController 设置 AppCompatActivity.getSupportActionBar 返回的 ActionBar。

对于 androidx.appcompat.widget.Toolbar
Unit Toolbar.setupWithNavController(navController: NavController, drawerLayout: DrawerLayout?)

使用 NavController 设置一个 Toolbar

Unit Toolbar.setupWithNavController(navController: NavController, configuration: AppBarConfiguration = AppBarConfiguration(navController.graph))

使用 NavController 设置一个 Toolbar

对于 com.google.android.material.appbar.CollapsingToolbarLayout
Unit CollapsingToolbarLayout.setupWithNavController(toolbar: Toolbar, navController: NavController, drawerLayout: DrawerLayout?)

CollapsingToolbarLayoutToolbar 设置为与 NavController 一起使用。

Unit CollapsingToolbarLayout.setupWithNavController(toolbar: Toolbar, navController: NavController, configuration: AppBarConfiguration = AppBarConfiguration(navController.graph))

CollapsingToolbarLayoutToolbar 设置为与 NavController 一起使用。

对于 com.google.android.material.bottomnavigation.BottomNavigationView
Unit BottomNavigationView.setupWithNavController(navController: NavController)

BottomNavigationView 设置为与 NavController 一起使用。

对于 com.google.android.material.navigation.NavigationView
Unit NavigationView.setupWithNavController(navController: NavController)

NavigationView 设置为与 NavController 一起使用。

对于 NavController
布尔值 NavController.navigateUp(drawerLayout: DrawerLayout?)

通过将行为委托给给定的 NavController 来处理向上按钮。

布尔值 NavController.navigateUp(appBarConfiguration: AppBarConfiguration)

通过将行为委托给给定的 NavController 来处理向上按钮。

顶层函数

AppBarConfiguration AppBarConfiguration(navGraph: NavGraph, drawerLayout: DrawerLayout? = null, noinline fallbackOnNavigateUpListener: () -> Boolean = { false })

用于 NavigationUI 方法的配置选项,这些方法与应用程序栏模式的实现(如 android.support.v7.widget.Toolbarandroid.support.design.widget.CollapsingToolbarLayoutandroid.support.v7.app.ActionBar)交互。

AppBarConfiguration AppBarConfiguration(topLevelMenu: Menu, drawerLayout: DrawerLayout? = null, noinline fallbackOnNavigateUpListener: () -> Boolean = { false })

用于 NavigationUI 方法的配置选项,这些方法与应用程序栏模式的实现(如 android.support.v7.widget.Toolbarandroid.support.design.widget.CollapsingToolbarLayoutandroid.support.v7.app.ActionBar)交互。

AppBarConfiguration AppBarConfiguration(topLevelDestinationIds: Set<Int>, drawerLayout: DrawerLayout? = null, noinline fallbackOnNavigateUpListener: () -> Boolean = { false })

用于 NavigationUI 方法的配置选项,这些方法与应用程序栏模式的实现(如 android.support.v7.widget.Toolbarandroid.support.design.widget.CollapsingToolbarLayoutandroid.support.v7.app.ActionBar)交互。

androidx.paging

依赖项

Groovy

dependencies {
    implementation "androidx.paging:paging-common-ktx:2.1.2"
    implementation "androidx.paging:paging-runtime-ktx:2.1.2"
    implementation "androidx.paging:paging-rxjava2-ktx:2.1.2"
}

Kotlin

dependencies {
    implementation("androidx.paging:paging-common-ktx:2.1.2")
    implementation("androidx.paging:paging-runtime-ktx:2.1.2")
    implementation("androidx.paging:paging-rxjava2-ktx:2.1.2")
}

扩展函数

对于 Factory
Flowable<PagedList<Value>> DataSource.Factory<Key, Value>.toFlowable(config: PagedList.Config, initialLoadKey: Key? = null, boundaryCallback: PagedList.BoundaryCallback<Value>? = null, fetchScheduler: Scheduler? = null, notifyScheduler: Scheduler? = null, backpressureStrategy: BackpressureStrategy = BackpressureStrategy.LATEST)

从此 DataSource.Factory 构造一个 Flowable<PagedList>,方便使用 RxPagedListBuilder

Flowable<PagedList<Value>> DataSource.Factory<Key, Value>.toFlowable(pageSize: Int, initialLoadKey: Key? = null, boundaryCallback: PagedList.BoundaryCallback<Value>? = null, fetchScheduler: Scheduler? = null, notifyScheduler: Scheduler? = null, backpressureStrategy: BackpressureStrategy = BackpressureStrategy.LATEST)

从此 DataSource.Factory 构造一个 Flowable<PagedList>,方便使用 RxPagedListBuilder

LiveData<PagedList<Value>> DataSource.Factory<Key, Value>.toLiveData(config: PagedList.Config, initialLoadKey: Key? = null, boundaryCallback: PagedList.BoundaryCallback<Value>? = null, fetchExecutor: Executor = ArchTaskExecutor.getIOThreadExecutor())

从该 DataSource.Factory 构造一个 LiveData<PagedList>,对于 LivePagedListBuilder 来说很方便。

LiveData<PagedList<Value>> DataSource.Factory<Key, Value>.toLiveData(pageSize: Int, initialLoadKey: Key? = null, boundaryCallback: PagedList.BoundaryCallback<Value>? = null, fetchExecutor: Executor = ArchTaskExecutor.getIOThreadExecutor())

从该 DataSource.Factory 构造一个 LiveData<PagedList>,对于 LivePagedListBuilder 来说很方便。

Observable<PagedList<Value>> DataSource.Factory<Key, Value>.toObservable(config: PagedList.Config, initialLoadKey: Key? = null, boundaryCallback: PagedList.BoundaryCallback<Value>? = null, fetchScheduler: Scheduler? = null, notifyScheduler: Scheduler? = null)

从该 DataSource.Factory 构造一个 Observable<PagedList>,对于 RxPagedListBuilder 来说很方便。

Observable<PagedList<Value>> DataSource.Factory<Key, Value>.toObservable(pageSize: Int, initialLoadKey: Key? = null, boundaryCallback: PagedList.BoundaryCallback<Value>? = null, fetchScheduler: Scheduler? = null, notifyScheduler: Scheduler? = null)

从该 DataSource.Factory 构造一个 Observable<PagedList>,对于 RxPagedListBuilder 来说很方便。

顶层函数

PagedList.Config Config(pageSize: Int, prefetchDistance: Int = pageSize, enablePlaceholders: Boolean = true, initialLoadSizeHint: Int = pageSize * PagedList.Config.Builder.DEFAULT_INITIAL_PAGE_MULTIPLIER, maxSize: Int = PagedList.Config.MAX_SIZE_UNBOUNDED)

构建一个 PagedList.Config,是 PagedList.Config.Builder 的简便方法。

PagedList<Value> PagedList(dataSource: DataSource<Key, Value>, config: PagedList.Config, notifyExecutor: Executor, fetchExecutor: Executor, boundaryCallback: PagedList.BoundaryCallback<Value>? = null, initialKey: Key? = null)

构建一个 PagedList,是 PagedList.Builder 的简便方法。

androidx.palette.graphics

依赖项

Groovy

dependencies {
    implementation "androidx.palette:palette-ktx:1.0.0"
}

Kotlin

dependencies {
    implementation("androidx.palette:palette-ktx:1.0.0")
}

扩展函数

对于 Palette
operator Palette.Swatch? Palette.get(target: Target)

返回调色板中给定目标的选定色块,如果找不到则返回 null

androidx.preference

依赖项

Groovy

dependencies {
    implementation "androidx.preference:preference-ktx:1.2.1"
}

Kotlin

dependencies {
    implementation("androidx.preference:preference-ktx:1.2.1")
}

扩展函数

对于 PreferenceGroup
operator Boolean PreferenceGroup.contains(preference: Preference)

如果在这个偏好组中找到了 preference,则返回 true

Unit PreferenceGroup.forEach(action: (preference: Preference) -> Unit)

对这个偏好组中的每个偏好执行给定的操作。

Unit PreferenceGroup.forEachIndexed(action: (index: Int, preference: Preference) -> Unit)

对这个偏好组中的每个偏好执行给定的操作,提供其顺序索引。

operator T? PreferenceGroup.get(key: CharSequence)

返回具有 key 的偏好,如果找不到具有 key 的偏好,则返回 null

operator Preference PreferenceGroup.get(index: Int)

返回 index 处的偏好。

布尔值 PreferenceGroup.isEmpty()

如果这个偏好组不包含任何偏好,则返回 true。

布尔值 PreferenceGroup.isNotEmpty()

如果这个偏好组包含一个或多个偏好,则返回 true。

operator MutableIterator<Preference> PreferenceGroup.iterator()

返回这个偏好组中偏好的 MutableIterator

operator Unit PreferenceGroup.minusAssign(preference: Preference)

从这个偏好组中移除 preference

operator Unit PreferenceGroup.plusAssign(preference: Preference)

preference 添加到这个偏好组。

扩展属性

对于 PreferenceGroup
Sequence<Preference> PreferenceGroup.children()

返回这个偏好组中偏好的 Sequence

Int PreferenceGroup.size()

返回这个偏好组中偏好的数量。

androidx.room

依赖项

Groovy

dependencies {
    implementation "androidx.room:room-ktx:2.6.1"
}

Kotlin

dependencies {
    implementation("androidx.room:room-ktx:2.6.1")
}

扩展函数

对于 RoomDatabase
suspend R RoomDatabase.withTransaction(block: suspend () -> R)

在数据库事务中调用指定的挂起 block

androidx.slice.builders

依赖项

Groovy

dependencies {
    implementation "androidx.slice:slice-builders-ktx:1.0.0-alpha08"
}

Kotlin

dependencies {
    implementation("androidx.slice:slice-builders-ktx:1.0.0-alpha08")
}

扩展函数

对于 GridRowBuilderDsl
GridRowBuilder GridRowBuilderDsl.cell(buildCell: CellBuilderDsl.() -> Unit)

GridRowBuilder GridRowBuilderDsl.seeMoreCell(buildCell: CellBuilderDsl.() -> Unit)

对于 ListBuilderDsl
ListBuilder ListBuilderDsl.gridRow(buildGrid: GridRowBuilderDsl.() -> Unit)

ListBuilder ListBuilderDsl.header(buildHeader: HeaderBuilderDsl.() -> Unit)

ListBuilder ListBuilderDsl.inputRange(buildInputRange: InputRangeBuilderDsl.() -> Unit)

ListBuilder ListBuilderDsl.range(buildRange: RangeBuilderDsl.() -> Unit)

ListBuilder ListBuilderDsl.row(buildRow: RowBuilderDsl.() -> Unit)

ListBuilder ListBuilderDsl.seeMoreRow(buildRow: RowBuilderDsl.() -> Unit)

顶层函数

Slice list(context: Context, uri: Uri, ttl: Long, addRows: ListBuilderDsl.() -> Unit)

简化了在 Kotlin 中构建 Slice 所需的冗余代码。

SliceAction tapSliceAction(pendingIntent: PendingIntent, icon: IconCompat, imageMode: Int = ICON_IMAGE, title: CharSequence)

用于构建可点击的 SliceAction 的工厂方法。

SliceAction toggleSliceAction(pendingIntent: PendingIntent, icon: IconCompat? = null, title: CharSequence, isChecked: Boolean)

用于构建可切换的 SliceAction 的工厂方法。

androidx.sqlite.db

依赖项

Groovy

dependencies {
    implementation "androidx.sqlite:sqlite-ktx:2.4.0"
}

Kotlin

dependencies {
    implementation("androidx.sqlite:sqlite-ktx:2.4.0")
}

扩展函数

适用于 SupportSQLiteDatabase
T SupportSQLiteDatabase.transaction(exclusive: Boolean = true, body: SupportSQLiteDatabase.() -> T)

在事务中运行 body,如果它在没有异常的情况下完成,则将其标记为成功。

androidx.work

依赖项

扩展函数

适用于 com.google.common.util.concurrent.ListenableFuture
suspend R ListenableFuture<R>.await()

等待 ListenableFuture 完成,不阻塞线程。

适用于 Operation
suspend Operation.State.SUCCESS! Operation.await()

等待 Operation 完成,不阻塞线程。

适用于 Data
布尔值 Data.hasKeyWithValueOfType(key: String)

如果 Data 实例具有对应于给定 key 的值,且具有预期类型 T,则返回 true。

适用于 Builder
OneTimeWorkRequest.Builder OneTimeWorkRequest.Builder.setInputMerger(@NonNull inputMerger: KClass<out InputMerger>)

OneTimeWorkRequest.Builder 上设置 InputMerger

顶层函数

OneTimeWorkRequest.Builder OneTimeWorkRequestBuilder()

使用给定的 ListenableWorker 创建一个 OneTimeWorkRequest

PeriodicWorkRequest.Builder PeriodicWorkRequestBuilder(repeatInterval: Long, repeatIntervalTimeUnit: TimeUnit)

使用给定的 ListenableWorker 创建一个 PeriodicWorkRequest.Builder

PeriodicWorkRequest.Builder PeriodicWorkRequestBuilder(repeatInterval: Duration)

使用给定的 ListenableWorker 创建一个 PeriodicWorkRequest.Builder

PeriodicWorkRequest.Builder PeriodicWorkRequestBuilder(repeatInterval: Long, repeatIntervalTimeUnit: TimeUnit, flexTimeInterval: Long, flexTimeIntervalUnit: TimeUnit)

使用给定的 ListenableWorker 创建一个 PeriodicWorkRequest.Builder

PeriodicWorkRequest.Builder PeriodicWorkRequestBuilder(repeatInterval: Duration, flexTimeInterval: Duration)

使用给定的 ListenableWorker 创建一个 PeriodicWorkRequest.Builder

数据 workDataOf(vararg pairs: Pair<String, Any?>)

将一对列表转换为 Data 对象。

androidx.work.testing

依赖项

Groovy

dependencies {
    implementation "androidx.work:work-testing:2.9.1"
}

Kotlin

dependencies {
    implementation("androidx.work:work-testing:2.9.1")
}

顶层函数

TestListenableWorkerBuilder<W> TestListenableWorkerBuilder(context: Context, inputData: Data = Data.EMPTY, tags: List<String> = emptyList(), runAttemptCount: Int = 1, triggeredContentUris: List<Uri> = emptyList(), triggeredContentAuthorities: List<String> = emptyList())

构建 TestListenableWorkerBuilder 的实例。

TestWorkerBuilder<W> TestWorkerBuilder(context: Context, executor: Executor, inputData: Data = Data.EMPTY, tags: List<String> = emptyList(), runAttemptCount: Int = 1, triggeredContentUris: List<Uri> = emptyList(), triggeredContentAuthorities: List<String> = emptyList())

构建 TestWorkerBuilder 的实例。

com.google.android.play.core.ktx

依赖项

Groovy

dependencies {
    implementation "com.google.android.play:core-ktx:1.8.1"
}

Kotlin

dependencies {
    implementation("com.google.android.play:core-ktx:1.8.1")
}

扩展函数

对于 com.google.android.play.core.appupdate.AppUpdateManager
suspend AppUpdateInfo AppUpdateManager.requestAppUpdateInfo()

请求当前应用程序的更新可用性

suspend Unit AppUpdateManager.requestCompleteUpdate()

对于灵活的更新流程,触发更新的完成。

Flow<AppUpdateResult> AppUpdateManager.requestUpdateFlow()

监控更新的可用性和进度的入口点。

布尔值 AppUpdateManager.startUpdateFlowForResult(appUpdateInfo: AppUpdateInfo, appUpdateType: Int, fragment: Fragment, requestCode: Int)

一个接受 AndroidX Fragment 的 AppUpdateManager.startUpdateFlowForResult 版本,用于返回结果。

对于 com.google.android.play.core.splitinstall.SplitInstallManager
suspend Unit SplitInstallManager.requestCancelInstall(sessionId: Int)

SplitInstallManager.cancelInstall 的挂起版本

suspend Unit SplitInstallManager.requestDeferredInstall(moduleNames: List<String>)

SplitInstallManager.deferredInstall 的挂起版本

suspend Unit SplitInstallManager.requestDeferredLanguageInstall(languages: List<Locale>)

SplitInstallManager.deferredLanguageInstall 的挂起版本

suspend Unit SplitInstallManager.requestDeferredLanguageUninstall(languages: List<Locale>)

SplitInstallManager.deferredLanguageUninstall 的挂起版本

suspend Unit SplitInstallManager.requestDeferredUninstall(moduleNames: List<String>)

SplitInstallManager.deferredUninstall 的挂起版本

suspend Int SplitInstallManager.requestInstall(modules: List<String> = listOf(), languages: List<String> = listOf())

启动所请求模块/语言的安装。

Flow<SplitInstallSessionState> SplitInstallManager.requestProgressFlow()

创建并返回一个缓冲的 Flow,它将提供所有正在进行的拆分安装的进度事件。

suspend SplitInstallSessionState SplitInstallManager.requestSessionState(sessionId: Int)

SplitInstallManager.getSessionState 的挂起版本

suspend List<SplitInstallSessionState> SplitInstallManager.requestSessionStates()

SplitInstallManager.getSessionStates 的挂起版本

布尔值 SplitInstallManager.startConfirmationDialogForResult(sessionState: SplitInstallSessionState, fragment: Fragment, requestCode: Int)

SplitInstallManager.startConfirmationDialogForResult 的一个版本,它接受一个 AndroidX Fragment 用于返回结果。

扩展属性

对于 com.google.android.play.core.appupdate.AppUpdateInfo
Int AppUpdateInfo.installStatus()

返回更新的进度状态。

布尔值 AppUpdateInfo.isFlexibleUpdateAllowed()

如果允许灵活更新,则返回 true

布尔值 AppUpdateInfo.isImmediateUpdateAllowed()

如果允许立即更新,则返回 true

对于 com.google.android.play.core.install.InstallState
布尔值 InstallState.hasTerminalStatus()

这表示这是一个终端状态(不会有更多更新),应该相应地处理(成功、取消或失败)。

Int InstallState.installErrorCode()

返回安装的错误代码,或 {@link InstallErrorCode#NO_ERROR}。

Int InstallState.installStatus()

返回安装的状态。

String! InstallState.packageName()

返回正在安装的应用程序的包名。

对于 com.google.android.play.core.splitinstall.SplitInstallSessionState
长整数 SplitInstallSessionState.bytesDownloaded()

此更新下载的字节数。

Int SplitInstallSessionState.errorCode()

此更新的错误代码。

布尔值 SplitInstallSessionState.hasTerminalStatus()

表示此更新是终端的,这意味着此会话不会有更多更新。

List<String> SplitInstallSessionState.languages()

此更新包含的语言。

List<String> SplitInstallSessionState.moduleNames()

此更新包含的模块。

Int SplitInstallSessionState.sessionId()

此更新的会话 ID。

Int SplitInstallSessionState.status()

此更新的状态代码。

长整数 SplitInstallSessionState.totalBytesToDownload()

此更新要下载的总字节数。

顶层函数

SplitInstallStateUpdatedListener SplitInstallStateUpdatedListener(onRequiresConfirmation: (SplitInstallSessionState) -> Unit, onInstalled: (SplitInstallSessionState) -> Unit, onFailed: (SplitInstallSessionState) -> Unit = {}, onPending: (SplitInstallSessionState) -> Unit = {}, onDownloaded: (SplitInstallSessionState) -> Unit = {}, onDownloading: (SplitInstallSessionState) -> Unit = {}, onInstalling: (SplitInstallSessionState) -> Unit = {}, onCanceling: (SplitInstallSessionState) -> Unit = {}, onCanceled: (SplitInstallSessionState) -> Unit = {}, onNonTerminalStatus: (SplitInstallSessionState) -> Unit = {}, onTerminalStatus: (SplitInstallSessionState) -> Unit = {})

用于创建 SplitInstallStateUpdatedListener 的便捷函数。