본문 바로가기
Flutter/Flutter FAQ

Flutter 버튼 너비를 부모와 일치시키는 방법은 무엇인가요?, How to make button width match parent?

by 베타코드 2023. 5. 10.
반응형

질문


나는 match parent 레이아웃 너비에 너비를 설정하는 방법을 알고 싶습니다.

new Container(
  width: 200.0,
  padding: const EdgeInsets.only(top: 16.0),
  child: new RaisedButton(
    child: new Text(
      "Submit",
      style: new TextStyle(
        color: Colors.white,
      )
    ),
    colorBrightness: Brightness.dark,
    onPressed: () {
      _loginAttempt(context);
    },
    color: Colors.blue,
  ),
),

나는 Expanded 위젯에 대해 약간 알고 있지만, Expanded는 양방향으로 뷰를 확장시키기 때문에 어떻게 해야할지 모릅니다.


답변


업데이트:

Flutter 2.0에서는 RaisedButton이 더 이상 사용되지 않으며 ElevatedButton으로 대체되었습니다. minimumSize를 이렇게 사용할 수 있습니다:

ElevatedButton(
  style: ElevatedButton.styleFrom(
    minimumSize: Size.fromHeight(40), // fromHeight는 너비로 double.infinity를 사용하고 높이는 40입니다
  ),
  onPressed: () {},
  child: Text('버튼의 텍스트'),
)

Flutter 2.0 미만의 이전 답변:

올바른 해결책은 SizedBox.expand 위젯을 사용하는 것입니다. 이는 child를 부모의 크기와 일치하도록 강제합니다.

SizedBox.expand(
  child: RaisedButton(...),
)

더 많거나 적은 사용자 정의를 허용하는 많은 대안이 있습니다:

SizedBox(
  width: double.infinity,
  // height: double.infinity,
  child: RaisedButton(...),
)

또는 ConstrainedBox를 사용할 수 있습니다.

ConstrainedBox(
  constraints: const BoxConstraints(minWidth: double.infinity),
  child: RaisedButton(...),
)
반응형

댓글