小编nai*_*ail的帖子

将 Flutter 集成到本机主机应用程序时,从 Flutter 完成 FlutterActivity [Add2App]

将 Flutter 集成到主机应用程序 ( docs ) 时,有几种方法可以做到,其中一种(最简单的)是通过FlutterActivity类在新 Activity 中打开 Flutter 。像这样:

// Java
hostActivity.startActivity(                
  FlutterActivity.withCachedEngine("my_engine_id").build(context)
);
Run Code Online (Sandbox Code Playgroud)

传统上,对于 Flutter 端的 Android 样式窗口,我们创建带有后退按钮的AppBar 。

此 AppBar后退按钮和 Android 系统后退按钮的行为必须相同:按下后退按钮时必须关闭(完成)前台活动。

当前系统后退按钮确实关闭了FlutterActivity,但是如何从 Flutters AppBar后退按钮模拟这种行为?

// Dart - Flutter side
...
child: AppBar(
  leading: IconButton(
      icon: Icon(Icons.arrow_back),
      onPressed: () {
          // WHAT MUST BE HERE?
      }),
...
Run Code Online (Sandbox Code Playgroud)

建立 Flutter 端和主机之间的 PS 平台通道 - 我可以从任何端调用任何代码

android flutter flutter-appbar flutter-platform-channel

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

一些碎片在旋转时丢失

我用FragmentActivity我的几个碎片.当配置改变时(旋转时),系统会破坏并重新创建每个片段.
我尝试使用这个重新创建的片段

mFragment = getSupportFragmentManager().findFragmentById(R.id.fragment_frame);
Run Code Online (Sandbox Code Playgroud)

并把它放到新的布局

getSupportFragmentManager().beginTransaction()
    .replace(R.id.fragment_frame, mFragment )       
    .commit();
Run Code Online (Sandbox Code Playgroud)

但遇到奇怪的行为:丢失了几个碎片.它们不会更多地显示在屏幕上.在他们的位置是空的.
虽然日志显示片段重新创建正常,但进一步显示片段再次被破坏,再次创建和销毁.

我为展示问题建立了更清晰,没有外壳的测试项目.
并且可以证明结果(插入图片的声誉不够)
活动开始图片
活动旋转图片

A,B,C,D是一个fragments
如你所见,配置改变后一些片段丢失(B,D)

告诉我我做错了什么

这是帮助的代码(编辑:将代码推送到gitHub以便更容易尝试)

https:// github.com/nailgilaziev/TestFragmentsRetain
Run Code Online (Sandbox Code Playgroud)

p/s抱歉链接

旋转设备后,这里记录猫

MainActivity: onPause Activity
MainActivity: onStop Activity
MainActivity: onDestroy Activity
A: onDestroyview
A: onDestroy
B: onDestroyview
B: onDestroy
C: onDestroyview
C: onDestroy
D: onDestroyview
D: onDestroy
MainActivity: onCreate Activity
A: onCreate
B: onCreate
C: onCreate
D: onCreate
MainActivity: replaced
MainActivity: onStart Activity
A: onCreateView
B: onCreateView
C: onCreateView
D: onCreateView

<--before …
Run Code Online (Sandbox Code Playgroud)

android rotation android-lifecycle android-fragments

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

如何在Flutter上的聊天气泡中实现时间文本自动换行行为

许多本地移动聊天Messenger(例如电报,whatsapp等)都实现了这种包装行为:在没有足够的文本空间时,将时间标签包装到新的一行。

简单的聊天气泡由两部分组成:文本和时间标签。在简单的情况下,它们几乎位于同一基线上。即使文本是多行(基线与最后一行)。但是在某些情况下,当没有可用空间并且文本试图相交时,会在气泡底部添加一个缩进。

如果我通过图片和视频显示它,将很容易理解: 在此处输入图片说明

和2个视频:

多行https://youtu.be/eigLIHWaub8

单行https://youtu.be/9GMDFYwMqdU

如何在Flutter上实现它?

flutter flutter-layout

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