Flutter에서 반경이있는 둥근 버튼 / 버튼 만들기
현재 Flutter에서 Android 앱을 개발 중입니다. 버튼은 어떻게 추가하나요?
RaisedButton 위젯을 사용할 수 있습니다. Raised Button Widget에는 다음과 같은 형태의 속성이 있습니다.
RaisedButton(
child: Text("Press Me"),
onPressed: null,
shape: RoundedRectangleBorder(borderRadius: new BorderRadius.circular(30.0))
)
공격 사용 또는 사용 하여 사용자 정의 버튼 및 , 및 . :RaisedButton
InkWell
onDoubleTap
onLongPress
etc
new InkWell(
onTap: () => print('hello'),
child: new Container(
//width: 100.0,
height: 50.0,
decoration: new BoxDecoration(
color: Colors.blueAccent,
border: new Border.all(color: Colors.white, width: 2.0),
borderRadius: new BorderRadius.circular(10.0),
),
child: new Center(child: new Text('Click Me', style: new TextStyle(fontSize: 18.0, color: Colors.white),),),
),
),
위젯 에서 splashColor
, highlightColor
속성 을 사용하는 경우 컨테이너를 꾸미는 대신 (장식 속성 삭제) 위젯 을 위젯 의 부모로 InkWell
사용 하세요 . 왜 읽어? 여기 .Material
InkWell
Padding(
padding: EdgeInsets.only(left: 150.0, right: 0.0),
child: RaisedButton(
textColor: Colors.white,
color: Colors.black,
child: Text("Search"),
onPressed: () {},
shape: new RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(30.0),
),
),
)
다수 :
여러 가지 방법이 있습니다. 여기에 몇 가지를 사용하고 있습니다.
(1) 사용 RoundedRectangleBorder
RaisedButton(
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)),
onPressed: () {},
child: Text("Button"),
)
(2) 사용 ClipRRect
ClipRRect(
borderRadius: BorderRadius.circular(40),
child: RaisedButton(
onPressed: () {},
child: Text("Button"),
),
)
(3) 사용 ClipOval
ClipOval(
child: RaisedButton(
onPressed: () {},
child: Text("Button"),
),
)
(4) 사용 ButtonTheme
ButtonTheme(
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)),
child: RaisedButton(
onPressed: () {},
child: Text("Button"),
),
)
(5) 사용 StadiumBorder
RaisedButton(
shape: StadiumBorder(),
onPressed: () {},
child: Text("Button"),
)
FlatButton 및 RaisedButton에 모양을 사용할 수 있습니다.
버튼 :
shape: RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(18.0),
side: BorderSide(color: Colors.red)
),
사각형 버튼의 경우 :
shape: RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(0.0),
side: BorderSide(color: Colors.red)
),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
FlatButton(
shape: new RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(18.0),
side: BorderSide(color: Colors.red)),
color: Colors.white,
textColor: Colors.red,
padding: EdgeInsets.all(8.0),
onPressed: () {},
child: Text(
"Add to Cart".toUpperCase(),
style: TextStyle(
fontSize: 14.0,
),
),
),
SizedBox(width: 10),
RaisedButton(
shape: new RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(18.0),
side: BorderSide(color: Colors.red)),
onPressed: () {},
color: Colors.red,
textColor: Colors.white,
child: Text("Buy now".toUpperCase(),
style: TextStyle(fontSize: 14)),
),
],
)
아래 코드를 사용하여 색상으로 둥근 버튼을 만들 수 있습니다.
Container(
width: 130.0,
height: 43.0,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(30.0),
gradient: LinearGradient(
// Where the linear gradient begins and ends
begin: Alignment.topRight,
end: Alignment.bottomLeft,
// Add one stop for each color. Stops should increase from 0 to 1
stops: [0.1, 0.9],
colors: [
// Colors are easy thanks to Flutter's Colors class.
Color(0xff1d83ab),
Color(0xff0cbab8),
],
),
),
child: FlatButton(
child: Text(
'Sign In',
style: TextStyle(
fontSize: 16.0,
fontFamily: 'Righteous',
fontWeight: FontWeight.w600,
),
),
textColor: Colors.white,
color: Colors.transparent,
shape:
RoundedRectangleBorder(borderRadius: BorderRadius.circular(30.0)),
onPressed: () {
},
),
);
특히이 문서 페이지 인 둥근 모서리에 익숙해 져야 합니다 .
이 문서는 이미 익숙한 경우 구성 요소의 스타일과 CSS의 동등한 스타일을 변경하는 방법을 보여줍니다.
내부의 색상 속성에 투명한 색상을 전달하여 투명한 둥근 버튼에 코드를 사용할 수 있습니다 BoxDecoration
. 예. color: Colors.transparent
. 또한이 버튼은 Container
및 GestureDetector
위젯 만 사용 합니다.
Container(
height: 50.0,
child: GestureDetector(
onTap: () {},
child: Container(
decoration: BoxDecoration(
border: Border.all(
color: Color(0xFFF05A22),
style: BorderStyle.solid,
width: 1.0,
),
color: Colors.transparent,
borderRadius: BorderRadius.circular(30.0),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Center(
child: Text(
"BUTTON",
style: TextStyle(
color: Color(0xFFF05A22),
fontFamily: 'Montserrat',
fontSize: 16,
fontWeight: FontWeight.w600,
letterSpacing: 1,
),
),
)
],
),
),
),
)
머티리얼 앱을 메인 위젯으로 사용하는 경우 머티리얼 버튼을 사용할 수 있습니다.
Padding(
padding: EdgeInsets.symmetric(vertical: 16.0),
child: Material(
borderRadius: BorderRadius.circular(30.0),//Set this up for rounding corners.
shadowColor: Colors.lightBlueAccent.shade100,
child: MaterialButton(
minWidth: 200.0,
height: 42.0,
onPressed: (){//Actions here//},
color: Colors.lightBlueAccent,
child: Text('Log in', style: TextStyle(color: Colors.white),),
),
),
)
'ProgramingTip' 카테고리의 다른 글
RecyclerView 용 GridLayoutManager의 정사각형 레이아웃 (0) | 2020.12.02 |
---|---|
URL에서 포트 번호를 제거하는 방법 (0) | 2020.12.02 |
Swift 3의 배열에서 객체 제거 (0) | 2020.12.02 |
정규식 단어 일치 (0) | 2020.12.01 |
자바 커스텀 생성 화 (0) | 2020.12.01 |