小编Mah*_*alv的帖子

Compose-Navigation:在导航之前从堆栈中删除以前的可组合项

我正在使用compose-navigation(alpha09) 来处理可组合项之间的导航

我想在移动到下一个目的地时删除启动屏幕(我不希望按下后背返回启动屏幕)

以下尝试未按预期工作:

navHostController.navigate(Route.login.id) {
    navHostController.graph.clear()
}
Run Code Online (Sandbox Code Playgroud)
navHostController.navigate(Route.login.id)
navHostController.graph.clear()
Run Code Online (Sandbox Code Playgroud)
val currentDest = navHostController.currentDestination
navHostController.navigate(Route.login.id)
if (currentDest != null) {
   navHostController.graph.remove(currentDest)
}
Run Code Online (Sandbox Code Playgroud)

那么如何删除启动屏幕然后转到下一步呢?

android android-jetpack-navigation android-jetpack-compose jetpack-compose-navigation

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

获取jetpack中最后一个可见项目索引组成LazyColumn

我想检查列表是否滚动到列表末尾。然而lazyListState不提供此属性

为什么我需要这个?我想显示一个用于列表“滚动到末尾”的 FAB,如果最后一项已经可见则隐藏它

(注:确实如此,但它是internal

  /**
   * Non-observable way of getting the last visible item index.
   */
  internal var lastVisibleItemIndexNonObservable: DataIndex = DataIndex(0)
Run Code Online (Sandbox Code Playgroud)

不知道为什么)

val state = rememberLazyListState()
LazyColumn(
    state = state,
    modifier = modifier.fillMaxSize()
) {
    // if(state.lastVisibleItem == logs.length - 1) ...
    items(logs) { log ->
        if (log.level in viewModel.getShownLogs()) {
            LogItemScreen(log = log)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

那么,如何检查我的内容是否LazyColumn滚动到数据集的末尾?

android android-jetpack-compose android-jetpack-compose-list android-jetpack-compose-lazy-column

34
推荐指数
4
解决办法
3万
查看次数

如何在 Flutter 中的小部件内获取主题颜色

我有这个:

Widget build(BuildContext context) {
    return MaterialApp(
      title: 'AnApp',
      theme: ThemeData(
        primarySwatch: Colors.blueGrey,
      ),
      home: MainWidget()
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

所以我将primarySwatch颜色设置为blueGrey. 如何在MainWidget课堂内访问这种颜色?

我想设置与AppBar颜色相同的背景。

dart flutter

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

在 Docusaurus 中更改图像大小

我正在使用 Docusaurus 来制作文档。

我想将图像添加到 Markdown 文件中,并调整其大小以防止其大于所需的大小。

检查这个答案,我意识到使用 md 文件中的静态 html 内容是可能的,但由于图像是静态的docs/assets<img>标签找不到它。

![Github](assets/github_logo.jpg)
Run Code Online (Sandbox Code Playgroud)

无法调整大小,并且

![Github](assets/github_logo.jpg)
Run Code Online (Sandbox Code Playgroud)

找不到资产。

我很乐意得到任何解决方案。

markdown docusaurus

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

在jetpack compose中画一条线

使用 XML 布局,您可以使用具有彩色背景的 View 对象来绘制一条线。

<View
   android:width="match_parent"
   android:height="1dp"
   android:background="#000000" />
Run Code Online (Sandbox Code Playgroud)

我们如何在 Jetpack compose 中绘制水平或垂直线

android android-jetpack-compose

14
推荐指数
2
解决办法
5570
查看次数

迁移到 Jetpack 撰写错误:不允许未绑定符号

我想迁移我现有的项目以部分使用 Jetpack compose
所以我使用Android studio 4.2-canary9打开它并添加了一个 compose 活动,以便 Android Studio 添加所需的配置。

当我尝试运行该项目时,它给了我一个错误:

e: java.lang.AssertionError: Unbound symbols not allowed
Run Code Online (Sandbox Code Playgroud)

使用Run with --stacktrace我向我抛出这个堆栈跟踪:

e: java.lang.AssertionError: Unbound symbols not allowed
    Unbound public symbol for public kotlinx.android.synthetic.main.activity_main/state.<get-state>|-5663767092261428579[0]
    Unbound public symbol for public kotlinx.android.synthetic.main.activity_main/stateContainer.<get-stateContainer>|-4335442114828357571[0]
    Unbound public symbol for public kotlinx.android.synthetic.main.activity_main/list.<get-list>|9139041782698166288[0]
    at org.jetbrains.kotlin.psi2ir.Psi2IrTranslator.generateModuleFragment(Psi2IrTranslator.kt:96)
    at org.jetbrains.kotlin.backend.jvm.JvmBackendFacade.doGenerateFiles(JvmBackendFacade.kt:87)
    at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.generateModule(JvmIrCodegenFactory.kt:40)
    at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.compileCorrectFiles(KotlinCodegenFacade.java:35)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.generate(KotlinToJVMBytecodeCompiler.kt:616)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:203)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:164)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:51)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:86)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:98)
    at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:346)
    at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:102)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally(IncrementalCompilerRunner.kt:240)
    at …
Run Code Online (Sandbox Code Playgroud)

android kotlin kotlin-android-extensions android-jetpack android-jetpack-compose

14
推荐指数
1
解决办法
1748
查看次数

android应用程序类启动时运行flutter代码

我正在为 Flutter 制作一个插件,以使用 android 本机库处理 fcm 消息。

我们知道当FCM收到消息时,它会启动应用程序(它是应用程序类)并运行Application#onCreate块内的代码,因此当应用程序在后台通过fcm启动时,我们可以运行本机代码。

我的问题是,是否可以在应用程序启动时运行flutter代码?
例如,如果收到消息:

应用类:

public class Application extends FlutterApplication {

  @Override
  public void onCreate() {
    super.onCreate();
    // Start flutter engine
    // Invoke a dart code in the Plugin using methodChannel or etc.
  }
}
Run Code Online (Sandbox Code Playgroud)

android flutter

13
推荐指数
2
解决办法
3659
查看次数

Flutter Android Embedding V1 和 V2 有什么区别

我正在为 Flutter 开发一个带有背景内容的插件。
最近,我在android_alarm_manager插件中遇到了有关Flutter android 嵌入的问题。

一部分README说:

对于 Flutter Android Embedding V1,必须为后台服务提供回调以将插件注册到后台隔离。

  • Flutter android 嵌入V1 或 V2究竟是什么?
  • 这两者之间有什么区别?

android android-embedded-api dart flutter flutter-android

12
推荐指数
2
解决办法
7547
查看次数

在 Jetpack compose 中添加抽屉切换按钮

我想将汉堡包图标添加到 Appbar 并使用该图标打开/关闭抽屉。

我将如何实现这一目标?

Scaffold(
    drawerShape = RoundedCornerShape(topRight = 10.dp, bottomRight = 10.dp),
    drawerElevation = 5.dp,
    drawerContent = {
      // Drawer
    },
    topBar = {
      TopAppBar(
        navigationIcon = {
          Icon(
            Icons.Default.Menu,
            modifier = Modifier.clickable(onClick = {
              // Open drawer => How?
            })
          )
        },

        modifier = Modifier
          .fillMaxWidth()
          .clip(RoundedCornerShape(bottomLeft = 10.dp, bottomRight = 10.dp)),
        title = { Text(text = "Hello") }
      )
    },
  ) {}

Run Code Online (Sandbox Code Playgroud)

android navigation-drawer android-jetpack-compose

10
推荐指数
2
解决办法
1872
查看次数

Firebase 实例 ID:在 21.0.0 中弃用 getId()

随着 FirebaseInstanceId 和 FirebaseCloudMessaging ( 21.0.0)最近发布,Firebase已弃用iid包,现在不推荐使用getToken()getId()方法。

根据Firebase 发行说明,该方法getToken()已移至FirebaseMessaging

前:

FirebaseInstanceId.getInstance().getToken()
Run Code Online (Sandbox Code Playgroud)

后:

FirebaseMessaging.getInstance().getToken()
Run Code Online (Sandbox Code Playgroud)

这提供了使用fcmToken,但要检索实例 id,FirebaseMessaging 和 FirebaseInstanceId 中没有可用的方法。


那么,是否instance_id被认为是无用的 id,不应再使用?或者有替代品吗?

android firebase firebase-cloud-messaging

10
推荐指数
2
解决办法
7664
查看次数