微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TextField不在移动平台上的AppStart上关注但在模拟器上有效

如何解决TextField不在移动平台上的AppStart上关注但在模拟器上有效

我正在编写的notes-app应该在应用启动时自动聚焦在文本字段上。它在AndroidStudio模拟器上执行此操作,但是当我在手机上安装该应用程序时不执行此操作。 为了在Android Studio中进行仿真,我使用了Pixel_3a_API_26和Pixel 2 API 26,并且在这两个仿真器上都可以对文本字段进行自动聚焦。 但是,当我在手机上安装该应用程序时,它不起作用。

import 'dart:async';
import 'dart:io';

import 'package:Flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:Fluttertoast/Fluttertoast.dart';

void main() {
  runApp(MaterialApp(
    home: Home(),));
}

class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {

  initState(){
    super.initState();
    getNotes();
  }

  List<String> notes = [];

  getNotes() async{
    SharedPreferences prefs = await SharedPreferences.getInstance();
    setState(() {
      prefs.containsKey("notes") ? notes = prefs.get("notes").split(",") :  prefs.setString("notes","");
      FocusScope.of(context).requestFocus(myFocusNode);
    });
  }

  writeNotes() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    setState(() {
        prefs.setString("notes",notes.toString().substring(1,notes
            .toString()
            .length - 1));
    });

  }

  final myController = TextEditingController();
  FocusNode myFocusNode = FocusNode();
  int editNoteIndex = -1;



  @override
  Widget build(BuildContext context) {

    return Scaffold(
      appBar: AppBar(
        title: Text(
          "Notes"
        ),backgroundColor: Colors.black,centerTitle: true,),body: Column(
        children: [
          Flexible(
            child: ListView.builder(
                itemCount: notes.length,itemBuilder: (context,index) {
                  return Card(
                      child: ListTile(
                        onTap: () {
                          myController.text = notes[index].trim();
                          FocusScope.of(context).unfocus();
                          Timer(const Duration(milliseconds: 1),() {
                            FocusScope.of(context).requestFocus(myFocusNode);
                          });
                          editNoteIndex = index;
                          },title: Text(notes[index]),trailing: FlatButton(
                          onpressed: () {
                            setState(() {
                              notes.removeAt(index);
                              writeNotes();
                            });
                          },child: Text("Delete"),color: Colors.red,));
                }),Expanded(
            flex: 0,child: Align(
              alignment: FractionalOffset.bottomCenter,child: Container(
                child: TextField(
                  controller: myController,keyboardType: TextInputType.multiline,minLines: 2,maxLines: 100,focusNode: myFocusNode,decoration: Inputdecoration(hintText: "Enter brilliant idea",suffixIcon: IconButton(icon: Icon(Icons.add),onpressed: (){setState(() {
                                            if(myController.text.isNotEmpty){
                                              Fluttertoast.showToast(msg: "Can't add empty Note");
                                            if(editNoteIndex != -1){
                                              notes.removeAt(editNoteIndex);
                                              notes.add(myController.text);
                                              editNoteIndex = -1;
                                              writeNotes();
                                            } else{
                                              notes.add(myController.text);
                                              writeNotes();
                                            }
                                            myController.clear();
                                            }else{
                                              Fluttertoast.showToast(
                                                  msg: "This is Center Short Toast",toastLength: Toast.LENGTH_SHORT,gravity: ToastGravity.CENTER,timeInSecForIosWeb: 1,backgroundColor: Colors.red,textColor: Colors.white,fontSize: 16.0
                                              );
                                            }
                                          });},autofocus: true,)
        ],);
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?