#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. обновленный ответ, пожалуйста, проверьте сейчас