Почему моя нижняя навигационная панель становится пустой после pu sh? - PullRequest
0 голосов
/ 03 апреля 2020

Когда я вызываю метод loadingDelete после удаления сообщения, в котором находится файл Navigator.pu sh .., я перенаправляюсь на страницу профиля, но моя нижняя панель навигации пуста (отображается пустой, где значки (содержимое) пусты ).

Я продолжаю сталкиваться с этой проблемой, когда я либо загружаю, либо удаляю сообщение .. Я пытался заменить скаффолд на MaterialApp, но не сработало ...

Здесь мой метод loadingDelete resides:

 class PostStateless extends StatelessWidget {
 final Post post2;

 PostStateless(this.post2);

  @override
 Widget build(BuildContext context) {
 print("REACHED HERE BEG "+post2.toString());

 return new Scaffold(
  resizeToAvoidBottomInset: false,
  body:PostPage(post2),
 );
 }
 }

 class PostPage extends StatefulWidget {
 final Post post2;

 PostPage(this.post2);

 @override
 PostPageState createState() => new PostPageState(post2);
 }

 class PostPageState extends State<PostPage> with TickerProviderStateMixin {
  ...
  ..
 loadingDelete()
 {

  if(!loadingDeletePost)
  return Container(
      decoration: BoxDecoration(
        image: DecorationImage(
          image: AssetImage("lib/assets/BackToEarth.jpg"),
          fit: BoxFit.cover,
        ),
      ),
      child: Center(
        child: Row(
            mainAxisSize: MainAxisSize.min, //centered things bil nos
            crossAxisAlignment: CrossAxisAlignment.center,
            children: <Widget>[
              CircularProgressIndicator(
                valueColor: new AlwaysStoppedAnimation<Color>(Colors.black),
              )
            ]),
        /* add child content here */
      ));
     else {
                  Navigator.of(context).pushAndRemoveUntil(MaterialPageRoute(builder: (context) =>
                  Profile()), (Route<dynamic> route) => false);
          //Navigator.push alone redirects me to the profile page with blank nav bar plus arrow back  
            visible in my app bar(Worse).
      }

       }
        ....
       }

Это структура моей страницы профиля:

 class Profile extends StatelessWidget {

@override
Widget build(BuildContext context) {


return Scaffold(
  body: ProfilePage(),
);
}
}

class ProfilePage extends StatefulWidget {
@override
_ProfilePageState createState() => new _ProfilePageState();
 }

 class _ProfilePageState extends State<ProfilePage> {

 ...
 ...
 }

Это структура моей глобальной нижней навигационной панели, которая находится в моем файле mainn dart в разделе MaterialApp Widget:

 void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(

  debugShowCheckedModeBanner: false,
  title: 'Instagram',
  theme: ThemeData(
    primarySwatch: Colors.blue,
  ),
  home: MyHomePage(),

 );
 }
 } 


 class MyHomePage extends StatefulWidget {
 @override
_MyHomePageState createState() => _MyHomePageState();
 }
 ManageUserModel user;
class _MyHomePageState extends State<MyHomePage> {

ApiService apiService = ApiService();
List<Widget> pages = [
HomePage(),
SearchPage(),
Post(),
NotificationsPage(),
ProfilePage()
];

 saveVariable(ManageUserModel user) async {
 // save variable
  SharedPreferences sharedUser = await SharedPreferences.getInstance();
String userSt=toJson(user);
print("USERST: "+userSt);
sharedUser.setString('user', userSt);
}

@override
void initState() {
apiService.getUsers("beeso").then((result) {
  setState(() {
    user = result;
    print("USERRRR" +user.toString());
    saveVariable(user);
  });
});
super.initState();
 }

 @override
 Widget build(BuildContext context) {
return DefaultTabController(
  length: 5,
  initialIndex: 0,
  child: Scaffold(
    body: TabBarView(
      children: pages,
    ),
    bottomNavigationBar:

    Container(

      margin: EdgeInsets.only(bottom: 20),
      child: new TabBar(
        tabs: [
          Tab(
            icon: Icon(Icons.home),
          ),
          Tab(
            icon: Icon(Icons.search),
          ),
          Tab(
            icon: Icon(Icons.add),
          ),
          Tab(
            icon: Icon(Icons.favorite),
          ),
          Tab(
            icon: Icon(Icons.perm_identity),
          ),
        ],
        unselectedLabelColor: Colors.black,
        labelColor: Colors.blue,
        indicatorColor: Colors.transparent,
      ),
    ),
    ),
   );
  } 

  }

Любая помощь приветствуется !!

1 Ответ

0 голосов
/ 03 апреля 2020

Измените навигацию на следующий код:

Navigator.of(context).popUntil((route) => route.isFirst);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...