小编Swe*_*ain的帖子

LiveData 与 StateFlow:我们应该从实时数据切换到状态流吗?

我遇到过建议切换到 StateFlow 的文章。就像这里的那个一样。同样在新的 Android studio 中,StateFlow 支持自动包含在数据绑定功能中,包括协程依赖项。实时数据已在大多数应用程序中使用。我们应该从 LiveData 迁移到 StateFlow 吗?有什么好处?

在此输入图像描述

android android-livedata kotlin-flow kotlin-stateflow android-studio-arctic-fox

33
推荐指数
2
解决办法
3万
查看次数

信息:“runZoned”已弃用,不应使用。这将在 v9.0.0 中删除。使用 Bloc.Bloc.transformer 代替

我在尝试在 DartPad 上运行代码时遇到此问题。

'runZoned' is deprecated and shouldn't be used. This will be removed in v9.0.0. Use Bloc.Bloc.transformer instead...
Run Code Online (Sandbox Code Playgroud)

正确的更换方法是什么?

代码:

import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

void main() {
  BlocOverrides.runZoned(
    () => runApp(const App()),
    blocObserver: AppBlocObserver(),
  );
}

/// Custom [BlocObserver] that observes all bloc and cubit state changes.
class AppBlocObserver extends BlocObserver {
  @override
  void onChange(BlocBase bloc, Change change) {
    super.onChange(bloc, change);
    if (bloc is Cubit) print(change);
  }

  @override
  void onTransition(Bloc bloc, Transition transition) {
    super.onTransition(bloc, transition);
    print(transition);
  }
}
Run Code Online (Sandbox Code Playgroud)

flutter bloc flutter-bloc

11
推荐指数
1
解决办法
6398
查看次数

如何在 Flutter 中播放静音视频时处理背景音乐?

我有一个颤振应用程序。打开应用程序时,应用程序将播放静音视频,直到这里一切正常。但是,当我在后台播放 Spotify 中的音乐,然后尝试打开 Flutter 应用程序时,Spotify 会暂停背景音乐。所以我想要的只是让 Spotify 在后台播放音乐,同时我的应用程序中的视频保持静音播放。当我尝试在应用程序中取消视频静音时,Spotify 音乐必须暂停。

videoPlayerController = VideoPlayerController.asset(ConstantAssets.dummyVideo3)
    ..addListener(() {})
    ..setLooping(true)
    ..initialize().then((value){
      videoPlayerController.play();
      videoPlayerController.setVolume(0);
    });
Run Code Online (Sandbox Code Playgroud)

所以,这个概念就像“一边播放 Instagram 视频,一边在后台听 Spotify”。可以做这样的事情吗?

android ios kotlin android-audiomanager flutter

9
推荐指数
1
解决办法
855
查看次数

Kotlin 中的 .kt 和 .kts 文件有什么区别。我们什么时候应该使用 .kts 文件而不是 .kt 文件?

在 Kotlin 中使用 .kts 文件的目的是什么?发布应用程序时,这些文件是否包含在应用程序包中?

在此处输入图片说明

android kotlin gradle-kotlin-dsl

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

Android Studio中com.diffplug.spotless插件有什么用?

我正在使用 Jetpack Compose,并且在许多示例的应用程序的 build.gradle 文件中遇到了“com.diffplug.spotless”插件,但我不确定我的项目中是否需要它。谁能解释一下在 Jetpack compose 项目中使用它的目的吗?

''' 应用插件:“com.diffplug.spotless” '''

android-studio build.gradle android-gradle-plugin android-jetpack android-jetpack-compose

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

错误:找不到符号导入 com.google.android.gms.ads.InterstitialAd

我已将 google AdMob 添加到项目中并发现此错误:错误:找不到符号导入 com.google.android.gms.ads.InterstitialAd; ^ 符号:InterstitialAd 类 位置:包 com.google.android.gms.ads

android interstitial admob

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

如何解决 java.lang.NoSuchFieldError: No field Companion of type Landroidx/compose/runtime/SlotTable$Companion?

我在所有 Jetpack compose 项目中多次收到此错误。这个错误是否与 Gradle 有关?因为我没有对主题进行任何更改。

java.lang.NoSuchFieldError: No field Companion of type Landroidx/compose/runtime/SlotTable$Companion; in class Landroidx/compose/runtime/SlotTable; or its superclasses (declaration of 'androidx.compose.runtime.SlotTable' appears in /data/app/~~-cK_xmGsJokhf6B_7aQseg==/com.swetajain.library-CN37OSea3A4uAWXYCBb63w==/base.apk)
Run Code Online (Sandbox Code Playgroud)

日志

应用程序.build.gradle

dependencies {

    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.3.2'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.2.1'
    implementation "androidx.compose.ui:ui:$compose_version"
    implementation "androidx.compose.material:material:$compose_version"
    implementation "androidx.ui:ui-tooling:$compose_version"
    implementation "androidx.compose.runtime:runtime:$compose_version"
    implementation "androidx.compose.foundation:foundation:$compose_version"
    implementation "androidx.compose.foundation:foundation-layout:$compose_version"
    implementation "androidx.compose.runtime:runtime-livedata:$compose_version"
    implementation "com.google.android.material:compose-theme-adapter:$compose_version"
    api 'com.github.bumptech.glide:glide:4.11.0'
    implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0-beta01'
    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0-beta01@aar'
    implementation 'androidx.activity:activity-ktx:1.2.0-beta01@aar'
    implementation "dev.chrisbanes.accompanist:accompanist-coil:0.3.3.1"
    def nav_compose_version = "1.0.0-alpha02"
    implementation "androidx.navigation:navigation-compose:$nav_compose_version"
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
Run Code Online (Sandbox Code Playgroud)

build.gradle-项目

buildscript {

    ext.compose_version = …
Run Code Online (Sandbox Code Playgroud)

android-studio android-jetpack material-components-android android-jetpack-navigation android-jetpack-compose

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

致命 lint 错误:为什么将 recyclerView.setHasFixedSize(true) 与 wrap_content 一起用于滚动方向的大小会产生致命 lint 错误?

在尝试生成签名的 APK 以便发布时。我发现以下错误。

在此输入图像描述

这个错误是在我将 Android Studio 更新到 4.1.3 后才出现的。

在此输入图像描述

经过检查,我发现 recyclerView.setHasFixedSize(true) 如果与 wrap_content 一起使用以获取滚动方向的大小,则会出现致命的 lint 错误。我已经通过在所有活动中删除该行来解决它,但我仍然需要知道为什么这个错误现在是致命的,更新之前没有这样的错误。

lint fatal-error apk android-studio android-recyclerview

6
推荐指数
2
解决办法
1889
查看次数

Android 13中如何从App语言中识别设备语言?

我在我的应用程序中添加了对每种应用程序语言的支持,即 android 13 功能,现在它是英语和俄语。我可以从设置更改应用程序语言,而无需更改设备语言。现在出于分析目的,我需要了解应用程序语言和设备语言。但如果我的设备是英语且应用程序是俄语,我总是收到俄语 -

   Resources.getSystem().configuration.locales.get(0).language  - ru

   context.resources.configuration.locales[0].language - ru

   Locale.getDefault().language - ru
Run Code Online (Sandbox Code Playgroud)

我希望收到来自

Resources.getSystem().configuration.locales.get(0).language
Run Code Online (Sandbox Code Playgroud)

context.resources.configuration.locales[0].language
Run Code Online (Sandbox Code Playgroud)

我会很高兴得到任何帮助

android android-13 android-locale

6
推荐指数
2
解决办法
1375
查看次数

为什么在使用 kotlinx.android.parcel.Parcelize 时收到“未实现抽象成员”警告?

我在尝试从发送 NewVehicle 对象的另一个片段读取包时收到此错误。

错误:类“NewVehicle”不是抽象的,并且未实现抽象成员 public Abstract fun describeContents(): Int 在 android.os.Parcelable 中定义

新车.kt

import android.os.Parcelable
import com.google.gson.annotations.SerializedName
import kotlinx.android.parcel.Parcelize

@Parcelize
data class NewVehicle(
    @SerializedName("av_se")
    val avSe: String,
    .....
    @SerializedName("vh_ob")
    val vhOb: String,
    @SerializedName("zo_in")
    val zoIn: String
):Parcelable{}
Run Code Online (Sandbox Code Playgroud)

android parcel parcelable kotlin kotlinx

5
推荐指数
3
解决办法
6392
查看次数