更改 DropdownSearch 上的输入文本颜色

问题描述 投票:0回答:2

有没有办法更改 DropdownSearch 小部件的输入颜色?默认颜色是黑色,但我想将其更改为灰色。我努力了 labelStyle: TextStyle(color: Colors.white) 但它不起作用。

这是我的 DropdownSearch 小部件

                    Container(
                      child: DropdownSearch<String>(
                        mode: Mode.BOTTOM_SHEET,
                        showSearchBox: true,
                        dropdownSearchDecoration: new InputDecoration(
                          enabledBorder: UnderlineInputBorder(
                            borderSide: BorderSide(color: Colors.white),
                          ),
                          focusedBorder: UnderlineInputBorder(
                            borderSide: BorderSide(color: Colors.white),
                          ),
                          prefixIcon: const Icon(
                            Icons.corporate_fare,
                            color: Colors.white,
                          ),
                        ),
                        showAsSuffixIcons: true,
                        showClearButton: false,
                        dropdownButtonBuilder: (_) => Padding(
                          padding: const EdgeInsets.all(8.0),
                          child: const Icon(
                            Icons.arrow_drop_down,
                            size: 24,
                            color: Colors.grey,
                          ),
                        ),
                        showSelectedItem: true,
                        items: _industry,
                        onChanged: (String newValue) {
                          setState(() {
                            dropDownValue = newValue;
                          });
                        },
                        selectedItem: dropDownValue,
                      ),
                    ), 
flutter dart-pub
2个回答
7
投票

有2个选择: 首先,你可以用主题小部件包装它:

Theme(
          data: ThemeData(
            textTheme: TextTheme(subtitle1: TextStyle(color: Colors.green)),
          ),
          child: DropdownSearch<String>(
            mode: Mode.BOTTOM_SHEET,
            showSearchBox: true,
            dropdownSearchDecoration: new InputDecoration(
              enabledBorder: UnderlineInputBorder(
                borderSide: BorderSide(color: Colors.red),
              ),
...

或者您可以从库中更改它。转到 selectDialog.dart。第349行是搜索框。为文本字段添加颜色:

...
TextField(
                style: TextStyle(color: Colors.red),
                controller: widget.searchBoxController,
                focusNode: focusNode,
                onChanged: (f) => _debouncer(() {
                  _onTextChanged(f);
                }),
...

您必须停止并重新启动应用程序才能使其正常工作。


0
投票

我发现 dropdown_search 5.0.6 使用 s_erfani 的 themeData 方法不会更改搜索框字段的文本颜色。我让它工作,而不是使用 dropdownDecoratorProps 的 baseStyle 属性:

DropdownSearch<MedicineModel>(
      onChanged: (MedicineModel? newValue) {
        setState(() {
          medicine = newValue;
        });
      },

    asyncItems: (String? filter) => getData(filter),

    popupProps: PopupPropsMultiSelection.modalBottomSheet(
      showSelectedItems: true,
      itemBuilder: _customPopupItemBuilderExample2,
      showSearchBox: true,

    ),
    compareFn: (item, sItem) => item.id == sItem.id,

    dropdownDecoratorProps: DropDownDecoratorProps(
      baseStyle: TextStyle(color:Colors.white),
    )


)
© www.soinside.com 2019 - 2024. All rights reserved.