Flutter로 시작하기: 측면 메뉴
기본 사항
간단한 측면 메뉴를 추가하는 것은 정말 쉽습니다. 모두 Scaffold 클래스에서 시작합니다.
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.red,
),
backgroundColor: Colors.white,
//This is the key
drawer: Container(
width: 200,
color: Colors.white,
child: ListView.builder(
itemCount: 4,
itemBuilder: (context, index) {
return Text('Item $index');
},
),
)
);
drawer
매개변수는 모든 유형의 위젯을 가져와 화면 왼쪽 끝에 숨깁니다. 서랍을 추가하면 측면 메뉴의 "끌기"동작을 활성화하기에 충분하지만 "메뉴"버튼이 나타날 AppBar를 추가하는 것이 항상 더 좋습니다.화면 오른쪽 가장자리에 배치하시겠습니까? 서랍 속성을 팝업하는 대신 endDrawer 속성에서 메뉴를 설정하는 것이 더 쉬운 방법은 아닙니다. 결과는 다음과 같이 나타납니다.
더 나은 터치 추가
인터랙션이 없는 메뉴는 꽤 쓸모가 없겠죠? 메뉴에 터치 기능을 추가하는 것은 원하는 모든 터치 컨트롤러, 버튼, 제스처 감지기로 수행할 수 있습니다... 유일한 문제는... 메뉴를 닫는 방법입니다. 단계별로 해봅시다:
먼저 요소를 좀 더 크게 만들고 클릭할 수 있도록 만들어 보겠습니다.
endDrawer: Container(
width: 200,
color: Colors.white,
child: ListView.builder(
itemCount: 4,
itemBuilder: (context, index) {
return Padding(
padding: const EdgeInsets.all(16.0),
child: GestureDetector(
onTap: () {
print('$index');
},
child: Text('Item $index')
),
);
},
),
),
텍스트를 클릭하면 색인이 인쇄되지만 서랍은 열린 상태로 유지되므로 닫으려면... 꺼내야 합니다!
Navigator.pop(context);
Flutter는 메뉴를 열면 내비게이션 스택에 서랍이 추가되어 닫힙니다.
좋습니다. 이제 터치 기능을 추가하고 메뉴를 덜 보기 좋게 만들었습니다. 이제 터치에 의미를 추가해야 합니다.
몸의 변화
이제 간단한 정수를 표시하는 본문을
Scaffold
에 추가해 보겠습니다.var item = 0;
body: Center(
child: Text('Hey, it\'s page $item'),
),
이제 단순히 a
setState
를 사용하여 메뉴 클릭에 따라 항목을 설정해 보겠습니다.endDrawer: Container(
width: 200,
color: Colors.white,
child: ListView.builder(
itemCount: 4,
itemBuilder: (context, index) {
return Padding(
padding: const EdgeInsets.all(16.0),
child: GestureDetector(
onTap: () {
Navigator.pop(context);
setState(() {
item = index;
});
},
child: Text('Item $index')
),
);
},
),
),
이제 메뉴가 몸의 내용물을 변경할 수 있습니다. 예, 매우 기본적인 구현이지만 원하는 방식으로 위젯을 원하는 만큼 추가할 수 있습니다. 이것이 Flutter의 힘이기도 합니다.
지금 무엇을 해야 합니까?
"기본"메뉴로 괜찮다면 그게 다입니다. 목록을 직접 사용하지 않고 열이나 다른 것을 사용하여 서랍에 "닫기"버튼을 추가하여 메뉴에 더 많은 양념을 추가할 수 있습니다. 나중 기사에서 약간의 화려함을 추가하여 메뉴를 새로운 수준으로 끌어 올릴 것입니다!
작성 기사
Reference
이 문제에 관하여(Flutter로 시작하기: 측면 메뉴), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/theotherdevs/starting-with-flutter-lateral-menu-2pc5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)