activar campo de texto utilizando botón, getX
Cómo activar el textField y hacer aparecer el teclado usando un botón o un GestureDetector, ya he creado el código, pero cuando hago clic en el botón o en el GestureDetector por segunda vez, el teclado no aparece y el cursor en el textField sigue ahí.
Estoy usando getX.
GestureDetector
GestureDetector(
onTap: () {
FocusScope.of(context).requestFocus(controller.textFieldFocus);
},
child: Container(
// height: 25.0,
margin: EdgeInsets.symmetric(horizontal: 20.0),
padding:
EdgeInsets.only(left: 5.0, right: 240.0, top: 5.0, bottom: 5.0),
decoration: Ui.getBoxDecoration(
color: Get.theme.primaryColor,
border: Border.all(
color: Color.fromRGBO(149, 151, 161, 1),
width: 1.0,
),
radius: 14.0,
),
child: Text(
"responder al comentario...",
style: TextStyle(
color: Color.fromRGBO(149, 151, 161, 1),
fontFamily: 'Roboto',
fontSize: 12,
letterSpacing: 0,
fontWeight: FontWeight.normal,
height: 1,
),
),
),
);
TextField
TextField(
controller: controller.textEditingController,
onSubmitted: (value) {
//
},
focusNode: controller.textFieldFocus, //usando getX
style: TextStyle(
color: Color.fromRGBO(149, 151, 161, 1),
fontFamily: 'Roboto',
fontSize: 12,
letterSpacing: 0,
fontWeight: FontWeight.normal,
height: 1,
),
autofocus: false,
cursorColor: Get.theme.focusColor,
decoration: Ui.getInputDecoration(
hintText: "agregar un comentario...",
),
keyboardType: TextInputType.multiline,
maxLines: null,
expands: true,
),
davy.ai
Para activar el textField y mostrar el teclado usando un botón o GestureDetector y asegurarse de que funcione para clics posteriores, puedes hacer lo siguiente:
Con estos cambios, la función setTextFieldFocus se llamará cada vez que se presione el botón o GestureDetector, sin importar si el textField ya tiene el enfoque o no. Además, el textField se borrará cuando pierda el enfoque, lo que facilitará la entrada de un nuevo comentario.