実践的な知識の仕上げを作成する

この記事では、主にAndroidでの実用的な作曲知識、長期的な更新について説明します

アンチクイッククリック

説明する

アンチクイッククリックは主にModifier演算子を使用して実装され、コードは次のとおりです。

コード

@Composable
fun Modifier.avoidRepeatclickable(millis: Long = 500, onClick: () -> Unit): Modifier {
    var timeStamp by remember {
        mutableStateOf(0L)
    }

    return clickable {
        if (System.currentTimeMillis() - timeStamp > millis) {
            onClick()
            timeStamp = System.currentTimeMillis()
        }
    }
}
复制代码

git:github.com/ananananzhu…

効果

gifには2つのボタンがあります。

  • 最初のものは通常のクリック可能を使用し、悲劇はクリックされるたびに色が変わります。

  • 2番目のボタンはアンチクイッククリック演算子を使用しており、500ミリ秒以内に複数回クリックすると背景が1回変化します。

アンチクイックclick.gifを作成する

作成のアクティビティにジャンプして、戻り結果を取得します

説明する

ここでは、ActivityResult Apiを使用する必要があり、composeは特別に拡張されています

使用する必要のある拡張ライブラリは次のとおりです。

androidx.activity:activity-compose:1.3.0
复制代码

コード

val launcher = rememberLauncherForActivityResult(contract =object : ActivityResultContract<String, String>() {
        override fun parseResult(resultCode: Int, intent: Intent?): String {
           return intent?.getStringExtra("data")?:""
        }

        /**
         * @param compose向Compose中传的数据 ActivityResultContract<String, String>的第一个泛型
         */
        override fun createIntent(context: Context, input: String?): Intent {
            return Intent(context,GenerateActivityResultActivity::class.java).apply {
                putExtra("data",input)
            }
        }
    } , onResult = {result-> //result 是ActivityResultContract<String, String>第二个泛型
        activityResult = result
    })
复制代码

gitアドレス:github.com/ananananzhu…

効果

作成ジャンプをアクティビティに移動してパラメータを渡し、結果を返します.gif

おすすめ

転載: juejin.im/post/7079233643658346533