>

플러터를 처음 접했고, 서랍 메뉴와 본문 목록이있는 홈페이지가 있습니다.

DRAWER MENU =>서랍 메뉴의 탭 항목 목록에서 PAGE 웹 URL을로드하고 있으며 BACK을 탭하면 내 홈페이지로 돌아갑니다. 아주 잘 작동합니다.

BODY LIST CONTENT =>탭 항목 목록에서 페이지 웹 URL을 잘로드하지만 내 홈페이지로 돌아가고 싶을 때 검은 화면이 나타납니다. (

Homepage.dart

class HomePage extends StatefulWidget{
  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return _HomePage();
  }
}
class _HomePage extends State<HomePage>{
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    var globalContext = context;
    return Scaffold(
      appBar: AppBar(
        title: Text(
            'Benvenuto',
            style: TextStyle(color: Colors.white)
        ),
        backgroundColor: Color(0xFF4035b1),
      ),
      drawer: Drawer(
        child: new Column(
          children: <Widget>[
            new UserAccountsDrawerHeader(
                accountName: Text('VIA ALBERTO POLIO 54'),
                decoration: BoxDecoration(
                    gradient: LinearGradient(
                        colors: [
                          Color(0xFF4268D3),
                          Color(0xFF584CD1)
                        ],
                        begin: FractionalOffset(0.2, 0.0),
                        end: FractionalOffset(1.0, 0.6),
                        stops: [0.0, 0.6],
                        tileMode: TileMode.clamp
                    )
                ),
                accountEmail: Text('ORARI: LUNEDI - VENERDI 9:30 / 19:30'),
                currentAccountPicture: new CircleAvatar(
                  radius: 50.0,
                  backgroundColor: const Color(0xFF778899),
                  backgroundImage: AssetImage("assets/img/icon_logo.jpg"),
                )
            ),
            // This list work well! 
            ListTile(
                leading: new Icon(Icons.arrow_forward_ios),
                title: new Text("TEST"),
                onTap: () {
                  Navigator.of(context).pop();
                  Navigator.of(context).push(MaterialPageRoute(
                      builder: (BuildContext context) => Page("title", "www.google.com")));
                }
            )
          ],
        ),
      ),
      // The menu on my body load well the page web url but doesn't return back to my homepage. 
      body: new Column(
          children: <Widget>[
            ListTile(
                leading: new Icon(Icons.arrow_forward_ios),
                title: new Text("TEST"),
                onTap: () {
                  Navigator.of(context).pop();
                  Navigator.of(context).push(MaterialPageRoute(
                      builder: (BuildContext context) => Page("title", "www.google.com")));
                }
            )
          ])
    );
  }
}

Page.dart

class Page extends StatelessWidget{
  final String titleText;
  final String urlSource;
  Page(this.titleText, this.urlSource);
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return new WebviewScaffold(
      url: urlSource,
      appBar: new AppBar(
        title: Text(titleText),
      ),
      withZoom: true,
      withLocalStorage: true,
      hidden: true,
    );
  }
}

main.dart

void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.green,
      ),
      home: HomePage()
    );
  }
}

도와 주셔서 감사합니다!

  • 답변 # 1

    Navigator.push () 직전에 Navigator.pop ()을 사용해서는 안됩니다.

    현재 페이지를 새 페이지로 바꾸려는 경우 Navigator.of (context) .pushReplacement ()를 사용할 수 있습니다.

    새로운 경로로만 이동하려면 pop 메소드를 삭제하고 push 만 사용하십시오

  • 답변 # 2

    여기서 실제 문제는 Navigator.pop ()을 사용할 때 제거한다는 것입니다. "페이지 스택"에서 Drawer ()에서 Navigator.pop ()을 사용하는 경우 ".pop"함수는 서랍을 제거하고 메인 페이지를 유지합니다.

    하지만 페이지의 "본체"의 일부인 ListTile ()과 함께 사용할 때는 제거하면됩니다.

    드로어, 대화 상자 또는 키보드와 같이 눌렀을 때 메인 페이지가 접히는 것은 Navigator.pop ()을 사용하여 제거됩니다. "Navigator.pop ()"을 구현하는 페이지에있는 다른 것들은 대신 페이지를 제거하십시오.

  • 이전 반응 모국어 변경은 즉시 영향을 미치지 않습니다
  • 다음 javascript - alexa에서 웹 사이트의 순위와 명성을 추출하는 방법은 무엇입니까?