#flutter
#flutter
Вопрос:
Как обернуть с помощью inkwell, чтобы каждая отдельная кнопка в строке могла работать.
Вот код:
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
_buildSoftUIMenu(LineAwesomeIcons.bookmark,
Colors.lightBlueAccent,
'Std Books'),
_buildSoftUIMenu(
LineAwesomeIcons.dot_circle_o,
Colors.deepOrangeAccent,
'Optional Books'),
_buildSoftUIMenu(LineAwesomeIcons.y_combinator,
Colors.yellowAccent,
'Current Affairs'),
],
),
Комментарии:
1. как вы создаете свои кнопки, показать код
3. @griffins пожалуйста, обратитесь к ссылке выше и направьте меня! Я застрял между ними! Я новичок в flutter, и я хочу OnTap для каждого значка подряд!
4. пожалуйста, поделитесь _buildSoftUIMenu() кодом здесь, обновите свой вопрос
5. @ArpitAwasthi Я поделился ссылкой на код github выше, пожалуйста, проверьте!
Ответ №1:
Вы можете добавить gesturedetector
к этому виджету, а затем вызвать функцию в своем коде
Widget _buildSoftUIMenu(icon, color, title,{Function ontap}) {
return GestureDetector(onTap:onTap, child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Container(
height: 100.0,
width: 100.0,
margin: EdgeInsets.only(bottom: 16.0),
decoration: BoxDecoration(
color: bgColor,
borderRadius: BorderRadius.circular(16),
boxShadow: [
BoxShadow(
color: lightColor.withOpacity(0.1),
offset: Offset(-6, -6),
spreadRadius: 0,
blurRadius: 6,
),
BoxShadow(
color: Colors.black26,
offset: Offset(6, 6),
spreadRadius: 0,
blurRadius: 6,
)
]),
child: Center(
child: Icon(
icon,
size: 46,
color: color,
),
),
),
Text(
title,
style: subtitleStyle,
),
],
);
}
теперь вы можете создавать свои виджеты
_buildSoftUIMenu(LineAwesomeIcons.dot_circle_o,Colors.deepOrangeAccent, 'Optional Books',onTap:(){ print("######")},
Комментарии:
1. Большое спасибо, брат!
Это работает! отлично, я хотел бы спросить вас дальше, нужна ли мне какая-либо помощь!
2. обязательно опубликуйте so и упомяните меня в комментариях, проверьте мой профиль на наличие ссылок
Ответ №2:
Вы можете добавить этот код в свою функцию ** _buildSoftUIMenu **
Widget _buildSoftUIMenu(icon, color, title) {
return InkWell(
onTap: onTapCallback,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
....
....
....
],
);
);
}