Flutter / Android - moving focus from a dropdownbutton to a textField
I have a textfield and a dropdownbutton on a screen. When I move from the textfield to choose an item and then back to the textfield I find this a little bit awkward.
- Type in text field
- Select dropdown by tapping it twice
My problem is that you have to tap twice, once to exit the textfield and the second to access the dropdown - is there a way to exit the textfield and open the dropdownlist in one tap? Is this built into Android or the Flutter controls?
Here is some flutter code that displays a dropdown and a textbox...
class _TextAndDropdownState extends State<TextAndDropdown> {
int selectedDropdown;
String selectedText;
final textController = new TextEditingController();
@override
void initState() {
super.initState();
selectedDropdown = 1;
textController.addListener(() => print(''));
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('Text and dropdown'),
),
body: Container(
child: Column(
children: [
Padding(
padding: EdgeInsets.all(10.0),
),
DropdownButton(value: selectedDropdown, onChanged: _dropdownChange, items: [
DropdownMenuItem(
child: Text('First'),
value: 1,
),
DropdownMenuItem(child: Text('Seconds')),
]),
TextField(controller: textController),
],
),
),
);
}
void _dropdownChange(val) {
setState(() {
selectedDropdown = val;
});
}
}
flutter
add a comment |
I have a textfield and a dropdownbutton on a screen. When I move from the textfield to choose an item and then back to the textfield I find this a little bit awkward.
- Type in text field
- Select dropdown by tapping it twice
My problem is that you have to tap twice, once to exit the textfield and the second to access the dropdown - is there a way to exit the textfield and open the dropdownlist in one tap? Is this built into Android or the Flutter controls?
Here is some flutter code that displays a dropdown and a textbox...
class _TextAndDropdownState extends State<TextAndDropdown> {
int selectedDropdown;
String selectedText;
final textController = new TextEditingController();
@override
void initState() {
super.initState();
selectedDropdown = 1;
textController.addListener(() => print(''));
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('Text and dropdown'),
),
body: Container(
child: Column(
children: [
Padding(
padding: EdgeInsets.all(10.0),
),
DropdownButton(value: selectedDropdown, onChanged: _dropdownChange, items: [
DropdownMenuItem(
child: Text('First'),
value: 1,
),
DropdownMenuItem(child: Text('Seconds')),
]),
TextField(controller: textController),
],
),
),
);
}
void _dropdownChange(val) {
setState(() {
selectedDropdown = val;
});
}
}
flutter
@Martyns, no no answer just yet but I haven't' looked at trying to find a solution since I posed the question
– orangesherbert
Jan 9 at 18:26
add a comment |
I have a textfield and a dropdownbutton on a screen. When I move from the textfield to choose an item and then back to the textfield I find this a little bit awkward.
- Type in text field
- Select dropdown by tapping it twice
My problem is that you have to tap twice, once to exit the textfield and the second to access the dropdown - is there a way to exit the textfield and open the dropdownlist in one tap? Is this built into Android or the Flutter controls?
Here is some flutter code that displays a dropdown and a textbox...
class _TextAndDropdownState extends State<TextAndDropdown> {
int selectedDropdown;
String selectedText;
final textController = new TextEditingController();
@override
void initState() {
super.initState();
selectedDropdown = 1;
textController.addListener(() => print(''));
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('Text and dropdown'),
),
body: Container(
child: Column(
children: [
Padding(
padding: EdgeInsets.all(10.0),
),
DropdownButton(value: selectedDropdown, onChanged: _dropdownChange, items: [
DropdownMenuItem(
child: Text('First'),
value: 1,
),
DropdownMenuItem(child: Text('Seconds')),
]),
TextField(controller: textController),
],
),
),
);
}
void _dropdownChange(val) {
setState(() {
selectedDropdown = val;
});
}
}
flutter
I have a textfield and a dropdownbutton on a screen. When I move from the textfield to choose an item and then back to the textfield I find this a little bit awkward.
- Type in text field
- Select dropdown by tapping it twice
My problem is that you have to tap twice, once to exit the textfield and the second to access the dropdown - is there a way to exit the textfield and open the dropdownlist in one tap? Is this built into Android or the Flutter controls?
Here is some flutter code that displays a dropdown and a textbox...
class _TextAndDropdownState extends State<TextAndDropdown> {
int selectedDropdown;
String selectedText;
final textController = new TextEditingController();
@override
void initState() {
super.initState();
selectedDropdown = 1;
textController.addListener(() => print(''));
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('Text and dropdown'),
),
body: Container(
child: Column(
children: [
Padding(
padding: EdgeInsets.all(10.0),
),
DropdownButton(value: selectedDropdown, onChanged: _dropdownChange, items: [
DropdownMenuItem(
child: Text('First'),
value: 1,
),
DropdownMenuItem(child: Text('Seconds')),
]),
TextField(controller: textController),
],
),
),
);
}
void _dropdownChange(val) {
setState(() {
selectedDropdown = val;
});
}
}
flutter
flutter
asked Jul 26 '18 at 8:21
orangesherbertorangesherbert
3,48432850
3,48432850
@Martyns, no no answer just yet but I haven't' looked at trying to find a solution since I posed the question
– orangesherbert
Jan 9 at 18:26
add a comment |
@Martyns, no no answer just yet but I haven't' looked at trying to find a solution since I posed the question
– orangesherbert
Jan 9 at 18:26
@Martyns, no no answer just yet but I haven't' looked at trying to find a solution since I posed the question
– orangesherbert
Jan 9 at 18:26
@Martyns, no no answer just yet but I haven't' looked at trying to find a solution since I posed the question
– orangesherbert
Jan 9 at 18:26
add a comment |
1 Answer
1
active
oldest
votes
Sorry for the late Answer... I'm also finding the solution for this. now i get it.
Only you have add is
FocusScope.of(context).requestFocus(new FocusNode());
in your
_dropdownChange(val)
method
void _dropdownChange(val) {
setState(() {
FocusScope.of(context).requestFocus(new FocusNode());///It will clear all focus of the textfield
selectedDropdown = val;
});
}
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f51534205%2fflutter-android-moving-focus-from-a-dropdownbutton-to-a-textfield%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sorry for the late Answer... I'm also finding the solution for this. now i get it.
Only you have add is
FocusScope.of(context).requestFocus(new FocusNode());
in your
_dropdownChange(val)
method
void _dropdownChange(val) {
setState(() {
FocusScope.of(context).requestFocus(new FocusNode());///It will clear all focus of the textfield
selectedDropdown = val;
});
}
add a comment |
Sorry for the late Answer... I'm also finding the solution for this. now i get it.
Only you have add is
FocusScope.of(context).requestFocus(new FocusNode());
in your
_dropdownChange(val)
method
void _dropdownChange(val) {
setState(() {
FocusScope.of(context).requestFocus(new FocusNode());///It will clear all focus of the textfield
selectedDropdown = val;
});
}
add a comment |
Sorry for the late Answer... I'm also finding the solution for this. now i get it.
Only you have add is
FocusScope.of(context).requestFocus(new FocusNode());
in your
_dropdownChange(val)
method
void _dropdownChange(val) {
setState(() {
FocusScope.of(context).requestFocus(new FocusNode());///It will clear all focus of the textfield
selectedDropdown = val;
});
}
Sorry for the late Answer... I'm also finding the solution for this. now i get it.
Only you have add is
FocusScope.of(context).requestFocus(new FocusNode());
in your
_dropdownChange(val)
method
void _dropdownChange(val) {
setState(() {
FocusScope.of(context).requestFocus(new FocusNode());///It will clear all focus of the textfield
selectedDropdown = val;
});
}
answered Jan 18 at 12:28
Dithesh VishalakshanDithesh Vishalakshan
279
279
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f51534205%2fflutter-android-moving-focus-from-a-dropdownbutton-to-a-textfield%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
@Martyns, no no answer just yet but I haven't' looked at trying to find a solution since I posed the question
– orangesherbert
Jan 9 at 18:26