Как сделать так, чтобы строка с иконкой и текстом была вставляемой? - PullRequest
0 голосов
/ 18 октября 2018

У меня есть 2 вопроса:

  1. У меня есть вложенная функция BuildButtonColumn, которая берет значок и текст под ней, и я хочу, чтобы ее можно было использовать.Я знаю, что GestureDetector обладает свойством onTap, но как мне использовать это в функции BuildButtonColumn?

    Column buildButtonColumn(IconData icon, String label) {
      Color color = Theme
          .of(context)
          .primaryColor;
    
      return Column(
        mainAxisSize: MainAxisSize.min,
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          Padding(
            padding: EdgeInsets.all(10.0),
          ),
          Icon(icon, color: color),
          Container(
            margin: const EdgeInsets.only(top: 8.0),
            child: Text(
                label,
                style: TextStyle(
                  fontSize: 14.0,
                  fontWeight: FontWeight.bold,
                  color: Colors.black,
                )
            ),
          )
        ],
      );
    }
    Widget buttonSection = Container(
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: <Widget>[
          buildButtonColumn(Icons.message, 'Message'),
          buildButtonColumn(Icons.videocam, 'Request Video')
        ],
      ),
    );
    

Я взял ссылку на расположение кнопок из здесь .

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

enter image description here

Я также хочу показать вертикальный разделитель между ними.Я следовал за этим ТАКИМ сообщением, но у меня это не сработало, или я мог что-то упустить для его реализации.

1 Ответ

0 голосов
/ 18 октября 2018

Вместо return Column вы можете написать:

return GestureDetector(
    onTap: (){ ... },
    child: Column(),
)

Что касается делителя - VerticalDivider() мне подходит

Widget buttonSection = Container(
  child: Row(
    mainAxisAlignment: MainAxisAlignment.spaceEvenly,
    children: <Widget>[
      buildButtonColumn(Icons.message, 'Message'),
      VerticalDivider(color: Colors.black,),
      buildButtonColumn(Icons.videocam, 'Request Video')
    ],
  ),
);

Должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...