-1

我观察到小部件在小屏幕上显示得更大,而在大屏幕上显示得更小。在大屏幕上它看起来相当不错,但在小屏幕上看起来很奇怪。我怎样才能在不同的手机屏幕尺寸下做出响应式和美观的用户界面......??

4

1 回答 1

0

您可以使用该方法MediaQuery.of(context).size检索当前屏幕的大小并根据此值定义小部件的大小。
这是一个例子:

@override
  Widget build(BuildContext context) {
    return Container(
      width: MediaQuery.of(context).size.width / 3.5,
      child: Center(
          child: Card(
              child: InkWell(
        onTap: () => _openUrl(_shortcut.url),
        child: Column(
            mainAxisAlignment: MainAxisAlignment.start,
            crossAxisAlignment: CrossAxisAlignment.start,
            mainAxisSize: MainAxisSize.min,
            children: [
              Container(
                height: MediaQuery.of(context).size.height / 6,
                color: Color(int.parse("0xFF${_shortcut.color}")),
                child: Center(child: Icon(_shortcut.icon, color: Colors.white)),
              ),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: Text(_shortcut.title,
                    style: TextStyle(fontWeight: FontWeight.bold)),
              ),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: Text(
                  _shortcut.description,
                  maxLines: 2,
                  overflow: TextOverflow.ellipsis,
                ),
              ),
            ]),
      ))),
    );
  }
于 2021-04-02T19:18:31.463 回答