GithubHelp home page GithubHelp logo

Comments (9)

AhmedLSayed9 avatar AhmedLSayed9 commented on September 21, 2024 1

Nvm, I'll fix it soon

from dropdown_button2.

AhmedLSayed9 avatar AhmedLSayed9 commented on September 21, 2024

Can you provide an example using DropdownButtonFormField ?

from dropdown_button2.

claudiobsi avatar claudiobsi commented on September 21, 2024
import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const MyHomePage(title: "DropDownButton Sample",));
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text(widget.title),
        ),
        body: Center(
          child: SafeArea(
            child: Form(
              child: SizedBox(
                width: 200,
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    DropdownButtonFormField(
                      items: _getItems(),
                      onChanged: (_) {},
                    ),
                    const Divider(),
                    DropdownButtonFormField(
                      items: _getItems(),
                      onChanged: (_) {},
                    ),
                    DropdownButtonFormField2(
                      items: _getItems(),
                      onChanged: (_) {},
                    ),
                  ],
                ),
              ),
            ),
          ),
        ),
      ),
    );
  }

  List<DropdownMenuItem<String>> _getItems() {
    return ["Option 1", "Option 2"]
        .map<DropdownMenuItem<String>>((String value) {
      return DropdownMenuItem<String>(
        value: value,
        child: Text(value),
      );
    }).toList();
  }
}

from dropdown_button2.

AhmedLSayed9 avatar AhmedLSayed9 commented on September 21, 2024

I added some offset so you can observe the focus color, it works fine:

Screen.Recording.2023-06-17.at.4.45.00.AM.mov

or you mean it doesn't stay highlighted after selecting an option?

from dropdown_button2.

AhmedLSayed9 avatar AhmedLSayed9 commented on September 21, 2024

I think you're misunderstanding that the current behavior of flutter's dropdown highlighting is not proper. The button shouldn't stay highlighted after closing the menu. (Edit: Button should stay highlighted when menu closes) Also, it loses focus when menu is open (but you can't see it as the menu is covering the button), see flutter/flutter#94605

However, the dropdown menu is stealing the focus from the underlying button (the grey color) which is a core flutter issue.
I'll push a temporary solution for it anyway so that the button maintain focused properly when menu open and unfocus when it's closed.

from dropdown_button2.

claudiobsi avatar claudiobsi commented on September 21, 2024

I added some offset so you can observe the focus color, it works fine:
Screen.Recording.2023-06-17.at.4.45.00.AM.mov

or you mean it doesn't stay highlighted after selecting an option?

Thanks for fast reply.

I meant when using the TAB key to navigate between widgets.

2023-06-16.18-22-28.mp4

from dropdown_button2.

AhmedLSayed9 avatar AhmedLSayed9 commented on September 21, 2024

Check DropdownButtonFormField2. You should set isDense: true, and contentPadding: EdgeInsets.zero,.

from dropdown_button2.

AhmedLSayed9 avatar AhmedLSayed9 commented on September 21, 2024

wait, focus border is not highlighted, let me check

from dropdown_button2.

AhmedLSayed9 avatar AhmedLSayed9 commented on September 21, 2024

Also, the behavior of increasing height/width through button data and setting isDense: true, and contentPadding: EdgeInsets.zero may not be needed anymore.

from dropdown_button2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.