我试图在 AlertDialog 中显示一个 TextField,但是当我尝试点击 TextField 时我的应用程序崩溃了。
这是我的代码:
Future<void> _showDialog(BuildContext context) async {
return showDialog<void>(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: const Text('AlertDialog Title'),
content: Directionality(
textDirection: TextDirection.rtl,
child: Obx(
() => SingleChildScrollView(
child: ListBody(
children: <Widget>[
buildRateRow(
label: 'punctuality',
dropDownValue: controller.punctualityDDValue),
TextField(
controller: controller.reviewController..text = 'hello',
autofocus: false,
maxLength: 255,
decoration: new InputDecoration(hintText: ' ... '),
),
],
),
),
),
),
actions: <Widget>[
ElevatedButton(
child: const Text('rate'),
onPressed: () {
controller.subRateTeacher(
teacherId: '${controller.teacher.value.id!}');
Navigator.of(context).pop();
},
),
TextButton(
child: const Text('cancel'),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
}
下拉工作没有任何问题。同样,当我单击按钮时,我会在 TextField 中获得文本。
错误信息
W/IInputConnectionWrapper(7294):非活动 InputConnection 上的 getExtractedText
W/IInputConnectionWrapper(7294):非活动 InputConnection 上的 getTextBeforeCursor
W/IInputConnectionWrapper(7294):非活动 InputConnection 上的 getExtractedText
W/IInputConnectionWrapper(7294):非活动 InputConnection 上的 getTextBeforeCursor
E/SpannableStringBuilder(7294):SPAN_EXCLUSIVE_EXCLUSIVE 跨度不能有零长度
I/chatty (7294): uid=10582(com.example.blog) 相同的 2 行
E/SpannableStringBuilder(7294):SPAN_EXCLUSIVE_EXCLUSIVE 跨度不能有零长度
D/ForceDarkHelper(7294):updateByCheckExcludeList:pkg:com.example.blog 活动:com.example.blog.MainActivity@10f2b63
D/EgretLoader(7294):EgretLoader(上下文上下文)
D/EgretLoader(7294):上下文不是活动
D/ForceDarkHelper(7294):updateByCheckExcludeList:pkg:com.example.blog 活动:com.example.blog.MainActivity@10f2b63
D/AndroidRuntime(7294):关闭虚拟机
E/AndroidRuntime(7294):致命异常:主要
E/AndroidRuntime(7294):进程:com.example.blog,PID:7294
E/AndroidRuntime(7294):java.lang.NullPointerException:尝试从空对象引用上的“android.view.WindowManager$LayoutParams android.view.ViewRootImpl.mWindowAttributes”字段读取
E/AndroidRuntime(7294):在 android.view.inputmethod.InputMethodManager.startInputInner(InputMethodManager.java:1626)
E/AndroidRuntime(7294):在 android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1870)
E/AndroidRuntime(7294):在 android.view.inputmethod.InputMethodManager.isActive(InputMethodManager.java:1184)
E/AndroidRuntime(7294):在 io.flutter.plugins.webviewflutter.InputAwareWebView$1.run(InputAwareWebView.java:195)
E/AndroidRuntime(7294):在 android.os.Handler.handleCallback(Handler.java:914) E/AndroidRuntime(7294):在 android.os.Handler.dispatchMessage(Handler.java:100)
E/AndroidRuntime(7294): 在 android.os.Looper.loop(Looper.java:225)
E/AndroidRuntime(7294): 在 android.app.ActivityThread.main(ActivityThread.java:7564)
E/AndroidRuntime(7294):在 java.lang.reflect.Method.invoke(本机方法)
E/AndroidRuntime(7294):在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
E/AndroidRuntime(7294):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
D/OOMEventManagerFK(7294):checkEventAndDumpForJE:0
I/Process (7294):发送信号。PID:7294 SIG:9
失去与设备的连接。