2017-12-23 41 views
0

Flutter Scaffold.Drawer를 사용하는 경우 서랍의 링크를 사용하여 페이지의 내용 (Scaffold.body)을 변경할 수 있습니까? 탐색 창에 링크가있는 것과 마찬가지로 Android에서 Fragment를 변경합니다.Flutter Drawer 위젯 - Scaffold.body 내용 변경

답변

2

당신은 단순히이처럼 Drawer 항목과 상호 작용하여 관심있는 컨텐츠의 state을 변경할 수 있습니다

class TestPage extends StatefulWidget { 
    @override 
    _TestPageState createState() => new _TestPageState(); 
} 

class _TestPageState extends State<TestPage> { 
    String text = "Initial Text"; 
    @override 
    Widget build(BuildContext context) { 
    return new Scaffold(
     drawer: new Drawer(
      child: new ListView(
      children: <Widget>[ 
       new Container(child: new DrawerHeader(child: new Container())), 
       new Container (
       child: new Column(
        children: <Widget>[ 
         new ListTile(leading: new Icon(Icons.info), 
          onTap:(){ 
           setState((){ 
           text = "info pressed"; 
           }); 
          } 
        ), 
         new ListTile(leading: new Icon(Icons.save), 
          onTap:(){ 
          setState((){ 
           text = "save pressed"; 
          }); 
          } 
        ), 
         new ListTile(leading: new Icon(Icons.settings), 
          onTap:(){ 
          setState((){ 
           text = "settings pressed"; 
          }); 
          } 
        ), 

        ] 
       ), 
      ) 
      ], 
     ), 
     ), 
     appBar: new AppBar(title: new Text("Test Page"),), 
     body: new Center(child: new Text((text)), 
     )); 
    } 
} 
: 여기 enter image description here

이 예제에 대한 관련 코드