Если вы компилируете код 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
Я воссоздал ваше дело, выделив только код TextFormField
, который вы предоставили, и смог увидеть dropdown arrow
как suffixIcon
.
@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
Возможно, вы обнаружили следующее, но публикуете на всякий случай ...
Отображаемый символ «X» является значком сброса для поля даты, т.е. Вы используете это, чтобы очистить поле. Вы можете отключить его с помощью свойства DateTimePickerFormField 'resetIcon: null;' но тогда единственный способ удалить дату из поля - это убедиться, что значение «editable: true» установлено по умолчанию, но вы переопределили его в своем коде. Надеюсь, что это помогает.