From 0529d6a2b61afdb50f69419801b0917a6c4c555e Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Sat, 23 Aug 2025 21:22:05 +0800 Subject: [PATCH] feat: add LP generic function in ViewGroup --- docs-source/src/en/library/hikage-extension.md | 2 +- docs-source/src/zh-cn/library/hikage-extension.md | 2 +- .../com/highcapable/hikage/extension/ViewGroup.kt | 14 +++++++++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/docs-source/src/en/library/hikage-extension.md b/docs-source/src/en/library/hikage-extension.md index feb8f58..9c348ba 100644 --- a/docs-source/src/en/library/hikage-extension.md +++ b/docs-source/src/en/library/hikage-extension.md @@ -219,7 +219,7 @@ Or, use in a custom `View`. class CustomView(context: Context, attrs: AttributeSet? = null) : FrameLayout(context, attrs) { init { - addView { + addView { TextView { text = "Hello, World!" textSize = 16f diff --git a/docs-source/src/zh-cn/library/hikage-extension.md b/docs-source/src/zh-cn/library/hikage-extension.md index 8023ba5..1d17add 100644 --- a/docs-source/src/zh-cn/library/hikage-extension.md +++ b/docs-source/src/zh-cn/library/hikage-extension.md @@ -217,7 +217,7 @@ root.addView { class CustomView(context: Context, attrs: AttributeSet? = null) : FrameLayout(context, attrs) { init { - addView { + addView { TextView { text = "Hello, World!" textSize = 16f diff --git a/hikage-extension/src/main/java/com/highcapable/hikage/extension/ViewGroup.kt b/hikage-extension/src/main/java/com/highcapable/hikage/extension/ViewGroup.kt index a13b46e..123ede7 100644 --- a/hikage-extension/src/main/java/com/highcapable/hikage/extension/ViewGroup.kt +++ b/hikage-extension/src/main/java/com/highcapable/hikage/extension/ViewGroup.kt @@ -30,6 +30,18 @@ import com.highcapable.hikage.core.base.HikageFactoryBuilder import com.highcapable.hikage.core.base.HikagePerformer import com.highcapable.hikage.core.base.Hikageable +/** + * @see ViewGroup.addView + * @see Hikageable + * @return [Hikage] + */ +@JvmName("addViewTyped") +inline fun ViewGroup.addView( + index: Int = -1, + factory: HikageFactoryBuilder.() -> Unit = {}, + performer: HikagePerformer +) = Hikageable(context = context, factory = factory, performer = performer).apply { addView(root, index) } + /** * @see ViewGroup.addView * @see Hikageable @@ -39,7 +51,7 @@ inline fun ViewGroup.addView( index: Int = -1, factory: HikageFactoryBuilder.() -> Unit = {}, performer: HikagePerformer -) = Hikageable(context = context, factory = factory, performer = performer).apply { addView(root, index) } +) = addView(index, factory, performer) /** * @see ViewGroup.addView