小编Viv*_*odi的帖子

检查 sdk 版本后缺少 PendingIntent 可变性标志发出警告

嘿,我收到了未决意图的警告。所以我根据这个问题和这个中等帖子包围了检查sdk的检查。我收到警告消息 缺少PendingIntent可变性标志

val pendingIntent: PendingIntent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT)
            } else {
                PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
            }
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如何删除此警告消息?

在此输入图像描述

android warnings kotlin android-pendingintent

8
推荐指数
1
解决办法
2060
查看次数

喷气背包中不同类型的宽度组成

我正在 jetpack compose 的文本字段中工作。我想建立这样的东西

在此输入图像描述

TextField(
            value = value,
            onValueChange = {
                value = it
            },
            modifier = Modifier
                .requiredWidth(56.dp)
                .padding(10.dp),
            colors = TextFieldDefaults.textFieldColors(
                backgroundColor = OffWhite,
                focusedIndicatorColor = TealLight,
                cursorColor = TealLight
            )
        )
Run Code Online (Sandbox Code Playgroud)

场景1

当我尝试这个时

 .requiredWidth(56.dp)
Run Code Online (Sandbox Code Playgroud)

或者

.width(56.dp)
Run Code Online (Sandbox Code Playgroud)

设计上看起来是这样的

在此输入图像描述

场景2

当我尝试这个时

.widthIn(min = 56.dp)
Run Code Online (Sandbox Code Playgroud)

看起来像这样

在此输入图像描述

场景3

当我尝试这个时

.fillMaxWidth()
Run Code Online (Sandbox Code Playgroud)

它占据了整个屏幕的宽度。

所以我的问题是哪一个用于哪种情况?在我的情况下最好的属性是什么?

android kotlin android-jetpack android-jetpack-compose

8
推荐指数
1
解决办法
1万
查看次数

在jetpack compose中使用视图模型的最佳实践

我对在可组合函数中使用 viewmodel 几乎没有疑问。我正在添加我的活动代码,我正在传递我的意图包。

  1. 所以我想问使用这样的视图模型viewmodel在活动中创建全局是最佳实践吗?

输入活动.kt

class InputActivity : ComponentActivity() {

    private val viewModel by viewModel<InputViewModel>()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setupViewModel()
        setContent {
            Theme {
                AppBarScaffold(
                    displayHomeAsUpEnabled = true,
                    titleId = R.string.personal_health
                ) {
                    viewModel.OptionData?.let {
                        Input(it)
                    }
                }
            }
        }
    }

    private fun setupViewModel() {
        viewModel.optionData = intent.getParcelableExtra("optiondata")
    }
}
Run Code Online (Sandbox Code Playgroud)

我有很多可组合的函数

输入

@Composable
fun Input(optionData: OptionData) {
    var value by rememberSaveable {
        mutableStateOf(false)
    }
    Column(
        modifier = Modifier
            .fillMaxHeight()
            .verticalScroll(rememberScrollState())
        verticalArrangement = Arrangement.SpaceBetween
    ) {
        InputItem() …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-viewmodel android-jetpack android-jetpack-compose

8
推荐指数
1
解决办法
1万
查看次数

在 jetpack compose 中使用 LaunchedEffect 与 SideEffect

大家好,我正在学习项目中的副作用。我想知道什么时候应该使用LaunchedEffect以及SideEffect在什么情况下使用。我正在添加一些使用这两种效果的代码。如果我在这里做错了,请让我知道。

第一次使用 LaunchedEffect,请指导我是否需要此功能的效果。

@Composable
fun BluetoothRequestContinue(multiplePermissionsState: MultiplePermissionsState) {
    var launchPermission by remember { mutableStateOf(false) }
    if (launchPermission) {
        LaunchedEffect(Unit) {
            multiplePermissionsState.launchMultiplePermissionRequest()
        }
    }
    AbcMaterialButton(
        text = stringResource(R.string.continue_text),
        spacerHeight = 10.dp
    ) {
        launchPermission = true
    }
}
Run Code Online (Sandbox Code Playgroud)

第二次使用 SideEffect 使用意图打开设置

@Composable
fun OpenPermissionSetting(router: Router = get()) {
    val activity = LocalContext.current as Activity
    var launchSetting by remember { mutableStateOf(false) }
    if (launchSetting) {
        SideEffect {
            activity.startActivity(router.permission.getPermissionSettingsIntent(activity))
        }
    }
    AbcMaterialButton(
        text = stringResource(R.string.open_settings),
        spacerHeight = 10.dp
    ) …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack android-jetpack-compose

8
推荐指数
1
解决办法
8852
查看次数

如何在jetpack compose中在顶部制作圆角

Scaffold我在我的函数中使用@Composable。里面content = {我正在使用LazyColumn. 我想要Top StartTop End转角。像这样的东西

预期输出

在此输入图像描述

我从这里尝试了这段代码,但它不起作用。

package com.example.scrollcompose

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Favorite
import androidx.compose.material.icons.filled.Menu
import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.example.scrollcompose.ui.theme.ScrollComposeTheme

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            ScrollComposeTheme {
                // …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack android-jetpack-compose android-jetpack-compose-material3

8
推荐指数
1
解决办法
2万
查看次数

jetpack 中的循环加载 Spinner 组成

我想在 jetpack compose 中创建加载微调器。我没有视频,但我有图像。

在此输入图像描述

我只知道CircularProgressIndicator但不知道如何自定义并看起来像上图一样。

    CircularProgressIndicator(
            progress = progress,
            color = progressColor,
            strokeWidth = strokeWidth,
            modifier = Modifier.fillMaxSize()
    )
Run Code Online (Sandbox Code Playgroud)

提前致谢。

更新

我发现该视频看起来像 Twitter 在网络中加载旋转器。我做了小视频截图。请在YouTube上观看

android kotlin android-jetpack android-jetpack-compose

7
推荐指数
2
解决办法
1万
查看次数

将 Paging 3 alpha 更新到稳定会导致 Android 索引问题

嘿,我正在使用Paging 3库和ViewPager 2。它加载无限的数据。

\n
implementation "androidx.paging:paging-runtime-ktx:3.0.0-alpha07"\n
Run Code Online (Sandbox Code Playgroud)\n

数据源.kt

\n
package com.example.viewpagerexample\n\nimport java.util.*\n\nclass DataSource(\n    private val size: Int = 5,\n    private val currentDate: Date,\n    private val limitDate: Date?\n) {\n\n    fun returnData(pageNumber: Int): List<Date> {\n\n        val dateList = mutableListOf<Date>()\n        val startDateForPage = startDate(pageNumber)\n        val tempCalendar = Calendar.getInstance()\n\n        tempCalendar.time = startDateForPage\n        val lastDateForPage = endDate(startDateForPage)\n\n        while (tempCalendar.time < lastDateForPage) {\n            if (limitDate == null ||\n                tempCalendar.time.before(limitDate) ||\n                tempCalendar.time == limitDate\n            ) {\n                dateList.add(tempCalendar.time)\n                tempCalendar.add(Calendar.DATE, 1)\n            } else {\n                break\n …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-paging android-paging-library android-paging-3

6
推荐指数
1
解决办法
2707
查看次数

Workmanager 在 Android 12 Android kotlin 中无法处理延迟

嘿,我正在 kotlin 中工作 WorkManager。我不明白一些代码并给我带来了这个错误。有人能更详细地向我解释一下吗?

2022-01-06 16:48:33.501 14483-14483/com.example.app E/AndroidRuntime: FATAL EXCEPTION: main
        Process: com.example.app, PID: 14483
        java.lang.IllegalArgumentException: Expedited jobs cannot be delayed
            at androidx.work.WorkRequest$Builder.build(WorkRequest.java:326)
            at com.example.app.tracker.TrackerHelper.setupNotificationWorkerForNextLaunch(TrackerHelper.kt:124)
            at com.example.app.tracker.TrackerHelper.setReminderOff(TrackerHelper.kt:36)
            at com.example.app.tracker.TrackerHelper.switchReminder(TrackerHelper.kt:70)
            at com.example.app.tracker.TrackerSettingsViewModel.switchReminder(TrackerSettingsViewModel.kt:34)
            at com.example.app.tracker.TrackerSettingsViewModel.enableReminder(TrackerSettingsViewModel.kt:100)
            at com.example.app.tracker.TrackerSettingsViewModel.setupReminderRow$lambda-1(TrackerSettingsViewModel.kt:85)
            at com.example.app.tracker.TrackerSettingsViewModel.lambda$5Q3PVjBphM6lb1pU0jZdN9GXKaE(Unknown Source:0)
            at com.example.app.tracker.-$$Lambda$TrackerSettingsViewModel$5Q3PVjBphM6lb1pU0jZdN9GXKaE.onCheckedChanged(Unknown Source:2)
            at android.widget.CompoundButton.setChecked(CompoundButton.java:222)
            at androidx.appcompat.widget.SwitchCompat.setChecked(SwitchCompat.java:1095)
            at androidx.appcompat.widget.SwitchCompat.toggle(SwitchCompat.java:1090)
            at android.widget.CompoundButton.performClick(CompoundButton.java:144)
            at android.view.View.performClickInternal(View.java:7418)
            at android.view.View.access$3700(View.java:835)
            at android.view.View$PerformClick.run(View.java:28676)
            at android.os.Handler.handleCallback(Handler.java:938)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loopOnce(Looper.java:201)
            at android.os.Looper.loop(Looper.java:288)
            at android.app.ActivityThread.main(ActivityThread.java:7839)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
Run Code Online (Sandbox Code Playgroud)

我尝试了这个解决方案,它在 android 11 或更低版本中工作。之后我尝试了这篇中等帖子来运行 …

android android-service kotlin android-workmanager

6
推荐指数
1
解决办法
3989
查看次数

如何在kotlin中打印流量大小

嘿,我是 kotlin flow的新手。我正在尝试打印流量大小。众所周知,列表具有size()功能。我们有类似的flow函数吗?

val list = mutableListof(1,2,3)
println(list.size)
Run Code Online (Sandbox Code Playgroud)

输出

2
Run Code Online (Sandbox Code Playgroud)

我们如何获得流量中的大小值?

dataMutableStateFlow.collectLatest { data ->
   ???
 }
Run Code Online (Sandbox Code Playgroud)

谢谢

kotlin kotlin-flow kotlin-stateflow

5
推荐指数
1
解决办法
2178
查看次数

我们建议使用较新的 Android Gradle 插件来使用compileSdk = 34?

嘿伙计们,我怎样才能更新到最新版本,因为我找不到最新的gradle-plugin。有人可以指导我吗?

构建.gradle(:应用程序)

plugins {
    id "com.android.application"
    id "org.jetbrains.kotlin.android"
}

android {
    namespace "com.abc.xyz"
    compileSdk 34

    defaultConfig {
        applicationId "com.abc.xyz"
        minSdk 24
        targetSdk 34
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary true
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
    buildFeatures {
        compose true
    }
    composeOptions {
        kotlinCompilerExtensionVersion compose_compiler_version
    }
    packagingOptions {
        resources {
            excludes += "/META-INF/{AL2.0,LGPL2.1}"
        }
    } …
Run Code Online (Sandbox Code Playgroud)

android gradle kotlin android-gradle-plugin kotlin-gradle-plugin

5
推荐指数
1
解决办法
1万
查看次数