黑屏,带有AppBar中的FlatButton

时间:2020-08-20 17:11:51

标签: android flutter dart

我的应用程序基本上包含两部分-> Appbar(带有1个按钮)和BottomNavigationBar(带有一些可以正常工作的按钮)。当我按下Appbar按钮时出现了问题(进入黑屏,而不是显示“ manual_page.dart”)

这是2个文件(home_page.dart和manual_page.dart)的内容:

home_page.dart

import 'package:flutter/material.dart';

import 'package:opening_a_pdf/manual_page.dart';
import 'package:opening_a_pdf/first_page.dart';
import 'package:opening_a_pdf/second_page.dart';

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

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

class _MyHomePageState extends State<MyHomePage> {

  int _selectedPage = 0;
  List<Widget> pageList = List<Widget>();

  @override
  void initState() {
    pageList.add(FirstPage());
    pageList.add(SecondPage());
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Color(0xFFFAFAFA),
      appBar: AppBar(
      backgroundColor: Colors.black,
      title: const Text('Aplicación en Desarrollo'),
            actions: <Widget>[
            FlatButton(
            textColor: Colors.white,
            child: Text(
              'MANUAL',
              style: TextStyle(
                fontSize: 16.0,
                fontWeight: FontWeight.bold,
              ),
            ),
            onPressed: (){ 
                Navigator.push(
                context,
                 MaterialPageRoute(builder: (context) => Voice()),
              );
            }
          )
        ],
      ),
      body: IndexedStack(
        index: _selectedPage,
        children: pageList,
      ),
      bottomNavigationBar: BottomNavigationBar(
        // type: BottomNavigationBarType.fixed,
        items: const <BottomNavigationBarItem>[
          BottomNavigationBarItem(
            backgroundColor: Colors.black,
            icon: Icon(Icons.compare_arrows),
            title: Text('Conectividad'),
          ),
          BottomNavigationBarItem(
            backgroundColor: Colors.black,
            icon: Icon(Icons.blur_on),
            title: Text('Captura Datos'),
          ),
          BottomNavigationBarItem(
            backgroundColor: Colors.black,
            icon: Icon(Icons.graphic_eq),
            title: Text('Voz'),
          ),
          BottomNavigationBarItem(
            backgroundColor: Colors.black,
            icon: Icon(Icons.list),
            title: Text('Comandos'),
          ),
          BottomNavigationBarItem(
            backgroundColor: Colors.black,
            icon: Icon(Icons.settings),
            title: Text('Ajustes'),
          ),
        ],
        currentIndex: _selectedPage,
        selectedItemColor: Colors.amber[800],
        onTap: _onItemTapped,
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
  void _onItemTapped(int index) {
    setState(() {
      _selectedPage = index;
    });
  }
}

manual_page.dart

import 'package:flutter/material.dart';

// ignore: camel_case_types
class Voice extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Sección de Órdenes por Voz"),
      ),
     body: Stack(
        fit: StackFit.expand,
        children: <Widget>[
          Positioned(
            bottom: 0,
            width: MediaQuery.of(context).size.width,
            child: Center(
              child: MaterialButton(
                onPressed: () {},
                color: Colors.red,
              ),
            ),
          )
        ],
      ),
    );
  }
}

3 个答案:

答案 0 :(得分:0)

尝试在堆叠之前的第二个屏幕中初始化容器的高度

答案 1 :(得分:0)

我执行了您的代码,发现没有问题。 enter image description here


但是您可以将空的Container()作为child的{​​{1}}。

更正的代码

MaterialButton()

答案 2 :(得分:0)

代码中没有错误。正常工作。可能是在main()或仿真器中。 主代码:

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

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

enter image description here

相关问题