fix messageinput focus

This commit is contained in:
Salvatore Giordano
2021-01-12 16:58:52 +01:00
parent 18d3cbcc86
commit 4aa224a5e6
3 changed files with 10 additions and 4 deletions
+5 -2
View File
@@ -623,8 +623,8 @@ class _ChannelPageState extends State<ChannelPage> {
@override @override
void initState() { void initState() {
super.initState();
_focusNode = FocusNode(); _focusNode = FocusNode();
super.initState();
} }
@override @override
@@ -635,7 +635,9 @@ class _ChannelPageState extends State<ChannelPage> {
void _reply(Message message) { void _reply(Message message) {
setState(() => _quotedMessage = message); setState(() => _quotedMessage = message);
_focusNode.requestFocus(); WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
_focusNode.requestFocus();
});
} }
@override @override
@@ -752,6 +754,7 @@ class _ChannelPageState extends State<ChannelPage> {
quotedMessage: _quotedMessage, quotedMessage: _quotedMessage,
onQuotedMessageCleared: () { onQuotedMessageCleared: () {
setState(() => _quotedMessage = null); setState(() => _quotedMessage = null);
_focusNode.unfocus();
}, },
), ),
], ],
+1 -1
View File
@@ -1,6 +1,6 @@
name: example name: example
description: A new Flutter project. description: A new Flutter project.
version: 1.1.1 version: 1.1.1+1
environment: environment:
sdk: ">=2.2.2 <3.0.0" sdk: ">=2.2.2 <3.0.0"
+4 -1
View File
@@ -203,6 +203,8 @@ class MessageInputState extends State<MessageInput> {
bool _openFilePickerSection = false; bool _openFilePickerSection = false;
int _filePickerIndex = 0; int _filePickerIndex = 0;
double _filePickerSize = _kMinMediaPickerSize; double _filePickerSize = _kMinMediaPickerSize;
KeyboardVisibilityController _keyboardVisibilityController =
KeyboardVisibilityController();
/// The editing controller passed to the input TextField /// The editing controller passed to the input TextField
TextEditingController textEditingController; TextEditingController textEditingController;
@@ -2249,7 +2251,8 @@ class MessageInputState extends State<MessageInput> {
_emojiNames = Emoji.all().map((e) => e.name); _emojiNames = Emoji.all().map((e) => e.name);
if (!kIsWeb) { if (!kIsWeb) {
_keyboardListener = KeyboardVisibility.onChange.listen((visible) { _keyboardListener =
_keyboardVisibilityController.onChange.listen((visible) {
if (_focusNode.hasFocus) { if (_focusNode.hasFocus) {
_onChanged(context, textEditingController.text); _onChanged(context, textEditingController.text);
} }