2017-09-09 11 views
0

私のフラッタープロジェクトでBottomNavigationBarを使用しようとしています。アイテムを供給したいと思います。そしてそのためには、itemsのプロパティを使用する必要があります。しかし、私はitemsプロパティをBottomNavigationBarで見つけることができません。添付の画像をご覧ください。フラッターでBottomNavigationBarのitemsプロパティを使用できません

enter image description here

そしてここで完全なコードです:

class _MyHomePageState extends State<MyHomePage> 
    with SingleTickerProviderStateMixin { 
    @override 
    Widget build(BuildContext context) { 
    // This method is rerun every time setState is called, for instance 
    // as done by the _incrementCounter method above. 
    // The Flutter framework has been optimized to make rerunning 
    // build methods fast, so that you can just rebuild anything that 
    // needs updating rather than having to individually change 
    // instances of widgets. 
    return new Scaffold(
     appBar: new AppBar(
     // Here we take the value from the MyHomePage object that 
     // was created by the App.build method, and use it to set 
     // our appbar title. 
     title: new Text(config.title), 
    ), 
     bottomNavigationBar: new BottomNavigationBar(
     currentIndex: 0, 
     onTap: (value){ 

     }, 
    ), 
     // a style that looks nicer for build methods. 
    ); 
    } 
} 

答えて

1

はあなたがフラッターの最新バージョンを持っていることを確認しています。私が言うことができる限り、宛先ラベルは2016年12月のコミットのアイテムに切り替わりました: https://github.com/flutter/flutter/commit/1b9939af9547513061d2e30716f182b490f5362b#diff-f907c739b721784b11a7fec0459d384f

+0

指摘してくれてありがとう。インストールされているflutterの現在のバージョンを確認するにはどうしたらいいですか?それを最新バージョンに更新するにはどうすればよいですか? –

+0

さて、それは私の問題を解決しました。 flutter upgradeコマンドを使用して、フラッタを最新バージョンにアップグレードしました。 –

0

私は何の問題に直面することなく、BottomNavigationBaritemsを使用することができました。

import 'package:flutter/material.dart'; 

void main() { 
    runApp(new MaterialApp(
     home: new MyApp())); 
} 

class MyApp extends StatefulWidget { 
    @override 
    _MyAppState createState() => new _MyAppState(); 
} 

class _MyAppState extends State<MyApp> with SingleTickerProviderStateMixin { 
    @override 
    Widget build(BuildContext context) { 
    return new Scaffold(
     appBar: new AppBar(
     title: new Text("Bottom Navigation"), 
    ), 
     bottomNavigationBar: new BottomNavigationBar(
     items: [new BottomNavigationBarItem(
      icon: new Icon(Icons.account_box), title: new Text("Account")), 
     new BottomNavigationBarItem(
      icon: new Icon(Icons.add), title: new Text("Add")), 
     new BottomNavigationBarItem(
      icon: new Icon(Icons.close), title: new Text("Close")), 
     ], 

    ), 

    ); 
    } 
} 
+0

私はアイテムのプロパティを使用することができないので、私は最新のバージョンを持っていると思います。私はlabelsプロパティで同じことを達成しました。同様に、TabBarViewのControllerプロパティも表示されません。ラベル付きのマップを使用する必要があります。 –

+0

あなたの周りにあなたのやり方を教えてくれてうれしいです。他の人に役立つ可能性があるので、おそらく最新バージョンのソリューションを回答として追加することを検討してください。 – aziza

+0

あなたはこの質問に答えることができます:https://stackoverflow.com/questions/46140010/how-to-show-snackbar-in-flutter –

1

Dartプラグインの新しいバージョンのように変更されているようです。私は(今はlabelsプロパティで地図を使用する必要があることに注意してください)以下のコードを経由して同じことを達成した:

import 'package:flutter/material.dart'; 

void main() { 
    runApp(new MyApp()); 
} 

class MyApp extends StatelessWidget { 
    // This widget is the root of your application. 
    @override 
    Widget build(BuildContext context) { 
    return new MaterialApp(
     title: 'App Name', 
     theme: new ThemeData(
     primarySwatch: Colors.blue, 
    ), 
     home: new MyHomePage(title: 'App Name'), 
    ); 
    } 
} 

class MyHomePage extends StatefulWidget { 
    MyHomePage({Key key, this.title}) : super(key: key); 

    final String title; 

    @override 
    _MyHomePageState createState() => new _MyHomePageState(); 
} 

class _MyHomePageState extends State<MyHomePage> { 
    var bottomBarLabels = [ 
    new DestinationLabel(
     icon: new Icon(Icons.live_tv), title: new Text("Live")), 
    new DestinationLabel(
     icon: new Icon(Icons.date_range), title: new Text("Matches")), 
    ]; 

    @override 
    Widget build(BuildContext context) { 
    void _handleBottomNavigationBarTap(int newValue) { 
     switch (newValue) { 
     case 0: 
      print("Live Clicked"); 
//   Scaffold.of(context).showSnackBar(new SnackBar(
//    content: new Text("Live Clicked"), 
//    )); 
      break; 
     case 1: 
      print("Matches Clicked"); 
//   Scaffold.of(context).showSnackBar(new SnackBar(
//    content: new Text("Matches Clicked"), 
//    )); 
      break; 
     } 
    } 

    return new Scaffold(
     appBar: new AppBar(
     title: new Text(config.title), 
    ), 
     bottomNavigationBar: new BottomNavigationBar(
      labels: bottomBarLabels, onTap: _handleBottomNavigationBarTap), 
    ); 
    } 
} 
関連する問題