Суффикс декорации входа флаттера Значок не появляется, но всегда показывает крест

Если вы компилируете код C вместе, как часть вашего проекта, с кодом на C ++, вам просто нужно включить заголовочные файлы, как обычно, и использовать режим компиляции C ++ для компиляции кода, однако некоторые C-код не будет компилироваться с использованием компилятора C ++ (например, использование функции malloc требует кастинга).

Если включено, с другой стороны, у вас есть библиотека или какой-либо другой код, который не является частью вашего проекта, тогда вам нужно убедиться, что заголовки отмечены как extern "C", иначе именование C ++ будет применяться соглашение для скомпилированных имен функций, которое не будет соответствовать соглашению об именах, используемому компилятором C.

Здесь есть два варианта: вы сами редактируете сам файл заголовка, добавляете

#ifdef __cplusplus 
extern "C" {
#endif

... original content of headerfile goes here. 

#ifdef __cplusplus 
}
#endif

Или, если у вас нет возможности редактировать эти заголовки, вы можете использовать эта форма:

#ifdef __cplusplus 
extern "C" {
#endif
#include <c_header.h>"
#ifdef __cplusplus 
}
#endif
0
задан newbie 6 March 2019 в 14:58
поделиться

2 ответа

Я воссоздал ваше дело, выделив только код TextFormField, который вы предоставили, и смог увидеть dropdown arrow как suffixIcon.

enter image description here

@override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Container(
        height: MediaQuery
            .of(context)
            .size
            .height,
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
            children : [
              new Container(
                color: Colors.yellow,
                width: 200.0,
                  child: TextFormField(
                  decoration: InputDecoration(
                      hintText: 'To',
                      border: InputBorder.none,
                      filled: false,
                      prefixIcon: Icon(
                        Icons.arrow_drop_down,
                        color: Colors.blue,
                        size: 28.0,
                      ),
                      suffixIcon: IconButton(
                          icon: Icon(Icons.arrow_drop_down,size: 28),
                          onPressed: () {
                            debugPrint('222');
                          })),
                ),
              )
        ]
              )
        ),
      )
      );
  }
}

Я вижу, что вы использовали Padding в качестве body для возврата Scaffold. Попробуйте заменить его на Center или Container

0
ответ дан DK15 6 March 2019 в 14:58
поделиться

Возможно, вы обнаружили следующее, но публикуете на всякий случай ...

Отображаемый символ «X» является значком сброса для поля даты, т.е. Вы используете это, чтобы очистить поле. Вы можете отключить его с помощью свойства DateTimePickerFormField 'resetIcon: null;' но тогда единственный способ удалить дату из поля - это убедиться, что значение «editable: true» установлено по умолчанию, но вы переопределили его в своем коде. Надеюсь, что это помогает.

0
ответ дан GrahamD 6 March 2019 в 14:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: