Skip to content

Instantly share code, notes, and snippets.

View zerofancy's full-sized avatar

归零幻想 zerofancy

View GitHub Profile
@zerofancy
zerofancy / main.kt
Created November 4, 2025 09:35
在Compose Wasm中加载中文字体和emoji
package top.ntutn.mindmap
import androidx.compose.material3.Text
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.platform.LocalFontFamilyResolver
@zerofancy
zerofancy / DefaultToastController.kt
Created August 3, 2025 08:53
在Compose Desktop中弹出Toast
package top.ntutn.sevenzip.toast
import androidx.compose.runtime.mutableStateListOf
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
class DefaultToastController(private val coroutineScope: CoroutineScope): IToastController {
private val messages = mutableStateListOf<ToastMessage>()
@zerofancy
zerofancy / infinite_novel.kt
Created August 2, 2025 16:30
Compose中弹出对话框
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Button
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
@zerofancy
zerofancy / SevenZipViewModel.kt
Last active July 23, 2025 06:14
安全地释放协程中引用的资源
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import net.sf.sevenzipjbinding.IInArchive
import net.sf.sevenzipjbinding.SevenZip
import net.sf.sevenzipjbinding.SevenZipException
应用发生了崩溃
以下信息有助于我们排查问题:
线程名:AWT-EventQueue-0
java.lang.IllegalStateException: Vertically scrollable component was measured with an infinity maximum height constraints, which is disallowed. One of the common reasons is nesting layouts like LazyColumn and Column(Modifier.verticalScroll()). If you want to add a header before the list of items please add a header as a separate item() before the main items() inside the LazyColumn scope. There are could be other reasons for this to happen: your ComposeView was added into a LinearLayout with some weight, you applied Modifier.wrapContentSize(unbounded = true) or wrote a custom layout. Please try to remove the source of infinite constraints in the hierarchy above the scrolling container.
at androidx.compose.foundation.CheckScrollableContainerConstraintsKt.checkScrollableContainerConstraints-K40F9xA(CheckScrollableContainerConstraints.kt:35)
@zerofancy
zerofancy / FloatingWindow.kt
Created February 9, 2025 09:36
在安卓悬浮窗中使用Compose
package top.ntutn.floatcompose
import android.content.Context
import android.graphics.PixelFormat
import android.os.Bundle
import android.util.AttributeSet
import android.util.Log
import android.view.Gravity
import android.view.View
import android.view.ViewGroup
@zerofancy
zerofancy / DemoTextView.kt
Created December 5, 2024 04:40
绘制文本描边
package top.ntutn.textviewdemo
import android.content.Context
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatTextView
class DemoTextView @JvmOverloads constructor(context: Context, defStyleAttr: AttributeSet? = null, defStyleRes: Int = 0) : AppCompatTextView(context, defStyleAttr, defStyleRes) {
@zerofancy
zerofancy / gist:87645b411159ae7c64bb85e180bad3fc
Created March 17, 2024 22:08
模仿微信涂抹文字选择。
package top.ntutn.swipeselectview
import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Rect
import android.util.AttributeSet
import android.view.MotionEvent
import android.view.View
import androidx.core.view.children
import com.google.android.material.chip.ChipGroup
@zerofancy
zerofancy / Ext.kt
Last active March 23, 2023 10:56
fragment便捷传参
import android.os.Bundle
import androidx.fragment.app.Fragment
import kotlin.properties.ReadWriteProperty
class FragmentBundleDataDelegate<T : Any>(private val clazz: Class<T>, private val defaultValue: T? = null) :
ReadWriteProperty<Fragment, T?> {
@Suppress("UNCHECKED_CAST")
override fun getValue(
thisRef: Fragment,