Нет изменения текстового поля, когда оно используется во флаттере

#flutter #flutter-layout #textfield #flutter-widget

Вопрос:

Мне интересно, возможно ли это. Что текстовое поле не меняется при его использовании. Это мой код:

 import 'package:flutter/material.dart';   void main() {  runApp(const MyApp()); }  class MyApp extends StatelessWidget {  const MyApp({Key? key}) : super(key: key);    @override  Widget build(BuildContext context) {  return MaterialApp(  debugShowCheckedModeBanner: false,  title: 'Shop App',  theme: ThemeData(  primarySwatch: Colors.blue,  ),  home: const MyHomePage() ,  );  } }  class MyHomePage extends StatefulWidget {  const MyHomePage({Key? key,}) : super(key: key);   @override  Statelt;MyHomePagegt; createState() =gt; _MyHomePageState(); }  class _MyHomePageState extends Statelt;MyHomePagegt; {    @override  Widget build(BuildContext context) {  return Scaffold(  backgroundColor: Colors.black,  body: Center(  child:   Padding(  padding: EdgeInsets.all(25.0),  child: TextField(  onChanged: (value) {},  decoration: InputDecoration(  enabledBorder: OutlineInputBorder(  // width: 0.0 produces a thin "hairline" border  borderSide: const BorderSide(color: Colors.white, width: 0.0),  borderRadius: BorderRadius.circular(20.0)  ),  fillColor: Colors.white,  filled: true,  hintText: "Search",  hintStyle: TextStyle(  color: Colors.grey.withOpacity(0.5),  ),  ),  ),  )  ),  );  } }  

На первом изображении показано мое текстовое поле, когда оно не используется, а на втором-когда оно используется. Я хочу, чтобы мое текстовое поле все время выглядело одинаково. Просто курсор-это то, что должно отображаться. введите описание изображения здесь введите описание изображения здесь

Ответ №1:

Вы должны использовать border вместо enableBorder

 // declare  TextEditingController _controller = TextEditingController();  // in textField  TextField(   controller: _controller,  onChanged: (value) {},  decoration: InputDecoration(  border: OutlineInputBorder(  // width: 0.0 produces a thin "hairline" border  borderSide: const BorderSide(color: Colors.white, width: 0.0),  borderRadius: BorderRadius.circular(20.0)  ),  fillColor: Colors.white,  filled: true,  hintText: "Search",  hintStyle: TextStyle(  color: Colors.grey.withOpacity(0.5),  ),    

полный исходный код

 import 'package:flutter/material.dart';   void main() {  runApp(const MyApp()); }  class MyApp extends StatelessWidget {  const MyApp({Key key}) : super(key: key);    @override  Widget build(BuildContext context) {  return MaterialApp(  debugShowCheckedModeBanner: false,  title: 'Shop App',  theme: ThemeData(  primarySwatch: Colors.blue,  ),  home: const MyHomePage() ,  );  } }  class MyHomePage extends StatefulWidget {  const MyHomePage({Key key,}) : super(key: key);   @override  Statelt;MyHomePagegt; createState() =gt; _MyHomePageState(); }  class _MyHomePageState extends Statelt;MyHomePagegt; {  TextEditingController _controller = TextEditingController();  @override  Widget build(BuildContext context) {  return Scaffold(  backgroundColor: Colors.black,  body: Center(  child:  Padding(  padding: EdgeInsets.all(25.0),  child: TextField(  controller: _controller,  onChanged: (value) {},  decoration: InputDecoration(  enabledBorder: OutlineInputBorder(  // width: 0.0 produces a thin "hairline" border  borderSide: const BorderSide(color: Colors.white, width: 0.0),  borderRadius: BorderRadius.circular(20.0)  ),  fillColor: Colors.white,  filled: true,  hintText: "Search",  hintStyle: TextStyle(  color: Colors.grey.withOpacity(0.5),  ),  ),  ),  )  ),  );  } }  

Комментарии:

1. Пользовательский интерфейс все еще меняется.

2. обновлен мой ответ, пожалуйста, посмотрите

3. Ты не понял моего вопроса. Он должен все время выглядеть одинаково. Можете ли вы помочь, чтобы это все время выглядело как первая фотография?

4. вы не измените оформление текстового поля, я прав?

5. обновленный ответ, пожалуйста, проверьте сейчас