会话页面
This commit is contained in:
69
lib/views/conversation/widgets/tim_emoji_panel.dart
Normal file
69
lib/views/conversation/widgets/tim_emoji_panel.dart
Normal file
@@ -0,0 +1,69 @@
|
||||
import 'package:chat/configs/app_colors.dart';
|
||||
import 'package:chat/configs/emoji.dart';
|
||||
import 'package:chat/models/im/emoji_model.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class EmojiPanel extends StatelessWidget {
|
||||
final void Function(int unicode) onTapEmoji;
|
||||
|
||||
const EmojiPanel({
|
||||
Key? key,
|
||||
required this.onTapEmoji,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SingleChildScrollView(
|
||||
child: Column(
|
||||
children: [
|
||||
Container(
|
||||
height: 248,
|
||||
color: AppColors.page,
|
||||
child: Stack(
|
||||
children: [
|
||||
GridView(
|
||||
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
|
||||
crossAxisCount: 8,
|
||||
childAspectRatio: 1,
|
||||
),
|
||||
children: emojiData.map(
|
||||
(e) {
|
||||
var item = EmojiModel.fromJson(e);
|
||||
return InkWell(
|
||||
onTap: () {
|
||||
onTapEmoji(item.unicode);
|
||||
},
|
||||
child: Center(
|
||||
child: EmojiItem(
|
||||
name: item.name,
|
||||
unicode: item.unicode,
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
).toList(),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class EmojiItem extends StatelessWidget {
|
||||
const EmojiItem({Key? key, required this.name, required this.unicode})
|
||||
: super(key: key);
|
||||
final String name;
|
||||
final int unicode;
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Text(
|
||||
String.fromCharCode(unicode),
|
||||
style: const TextStyle(
|
||||
fontSize: 26,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user