小编Dam*_*ioo的帖子

如何在 AGP 7.0.0-alpha15 之后更改版本代码

在 AGP 7.0.0-alpha15 之前,我可以像这样更改应用程序的版本代码

android {
  defaultConfig {
    applicationVariants.all {
      if (buildType.name == "debug") {
        outputs.forEach { output ->
          (output as? com.android.build.gradle.internal.api.ApkVariantOutputImpl)?.versionCodeOverride = 1
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

applicationVariants AGP 7.0.0-alpha15 之后好像不见了,怎么改?

PS:在普通的 gradle 中似乎没问题,上面是 Kotlin

编辑

通过下面的回答,我能够在构建中覆盖版本代码:

android {
  androidComponents.onVariants { appVariant ->
    if (appVariant.buildType == "release") {
      appVariant.outputs.forEach {
        it.versionCode.set(1)
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

android gradle android-gradle-plugin

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

如何在 Jetpack Compose 中导航期间保存 LazyColumn 的分页状态

我正在使用androidx.paging:paging-compose(v1.0.0-alpha-14)和Jetpack Compose(v1.0.3),我有一个PagingSource负责从后端提取项目的自定义。我还使用撰写导航组件。

问题是我不知道如何在通过 NavHostController 导航到不同屏幕和返回之间保存寻呼机流程的状态(滚动状态和缓存项目)。我试图通过保存状态,rememberSaveable但无法完成,因为它不是可以放入 Bundle 的东西。有一个快速/简单的步骤来做到这一点吗?

我的示例代码:

@Composable
fun SampleScreen(
   composeNavController: NavHostController? = null,
   myPagingSource: PagingSource<Int, MyItem>,
) {
   val pager = remember { // rememberSaveable doesn't seems to work here
       Pager(
           config = PagingConfig(
               pageSize = 25,
           ),
           initialKey = 0,
           pagingSourceFactory = myPagingSource
       )
   }
   val lazyPagingItems = pager.flow.collectAsLazyPagingItems()

   LazyColumn() {
       itemsIndexed(items = lazyPagingItems) { index, item ->
           MyRowItem(item) {
               composeNavController?.navigate(...)
           }
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

android android-paging android-jetpack-compose android-paging-3

4
推荐指数
1
解决办法
5318
查看次数

无法打开 ACTION_APP_LOCALE_SETTINGS 的活动

我正在尝试打开提拉米苏(Android 13 - Api33)中引入的新应用程序区域设置屏幕

我正在使用 Androd 13 的当前模拟器(修订版 6),并且在尝试使用以下命令打开它时

override fun openAppLocaleSettings(activity: Activity) {
        activity.startActivity(
            Intent(Settings.ACTION_APP_LOCALE_SETTINGS, Uri.parse(context.packageName))
        )
    }
Run Code Online (Sandbox Code Playgroud)

我越来越

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.APP_LOCALE_SETTINGS dat= }
Run Code Online (Sandbox Code Playgroud)

上面的代码有问题吗,或者Android还没有实现?

android android-intent

3
推荐指数
1
解决办法
525
查看次数