add lottie animation for typing indicator
This commit is contained in:
File diff suppressed because one or more lines are too long
+6
-21
@@ -227,27 +227,12 @@ class ChannelPage extends StatelessWidget {
|
|||||||
body: Column(
|
body: Column(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Stack(
|
child: MessageListView(
|
||||||
children: <Widget>[
|
threadBuilder: (_, parentMessage) {
|
||||||
MessageListView(
|
return ThreadPage(
|
||||||
threadBuilder: (_, parentMessage) {
|
parent: parentMessage,
|
||||||
return ThreadPage(
|
);
|
||||||
parent: parentMessage,
|
},
|
||||||
);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
Positioned.fill(
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.symmetric(
|
|
||||||
horizontal: 8.0,
|
|
||||||
vertical: 4,
|
|
||||||
),
|
|
||||||
child: TypingIndicator(
|
|
||||||
alignment: Alignment.bottomRight,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
MessageInput(),
|
MessageInput(),
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
name: example
|
name: example
|
||||||
description: A new Flutter project.
|
description: A new Flutter project.
|
||||||
version: 1.0.72+74
|
version: 1.0.74+76
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.2.2 <3.0.0"
|
sdk: ">=2.2.2 <3.0.0"
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:lottie/lottie.dart';
|
||||||
import 'package:stream_chat/stream_chat.dart';
|
import 'package:stream_chat/stream_chat.dart';
|
||||||
import 'package:stream_chat_flutter/src/stream_channel.dart';
|
import 'package:stream_chat_flutter/src/stream_channel.dart';
|
||||||
|
|
||||||
@@ -38,10 +39,21 @@ class TypingIndicator extends StatelessWidget {
|
|||||||
? Align(
|
? Align(
|
||||||
key: Key('typings'),
|
key: Key('typings'),
|
||||||
alignment: alignment,
|
alignment: alignment,
|
||||||
child: Text(
|
child: Row(
|
||||||
'${snapshot.data.map((u) => u.name).join(',')} ${snapshot.data.length == 1 ? 'is' : 'are'} typing...',
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
maxLines: 1,
|
children: [
|
||||||
style: style,
|
Lottie.asset(
|
||||||
|
'animations/typing_dots.json',
|
||||||
|
package: 'stream_chat_flutter',
|
||||||
|
alignment: Alignment.center,
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
' ${snapshot.data.map((u) => u.name).join(',')} ${snapshot.data.length == 1 ? 'is' : 'are'} typing',
|
||||||
|
maxLines: 1,
|
||||||
|
style: style,
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
: Align(
|
: Align(
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ dependencies:
|
|||||||
mime: ^0.9.6+3
|
mime: ^0.9.6+3
|
||||||
visibility_detector: ^0.1.5
|
visibility_detector: ^0.1.5
|
||||||
http_parser: ^3.1.4
|
http_parser: ^3.1.4
|
||||||
|
lottie: ^0.7.0+1
|
||||||
substring_highlight: ^0.1.2
|
substring_highlight: ^0.1.2
|
||||||
flutter_slidable: ^0.5.4
|
flutter_slidable: ^0.5.4
|
||||||
carousel_slider: ^2.2.1
|
carousel_slider: ^2.2.1
|
||||||
@@ -47,6 +48,7 @@ flutter:
|
|||||||
- images/
|
- images/
|
||||||
- svgs/
|
- svgs/
|
||||||
- lib/svgs/
|
- lib/svgs/
|
||||||
|
- animations/
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
pedantic: ^1.9.0
|
pedantic: ^1.9.0
|
||||||
|
|||||||
Reference in New Issue
Block a user