片段未加载底部导航视图

用户9550968

嗨,我正在制作应用程序,我使用底部导航来浏览片段,但我的问题是当我单击应用程序加载时,片段在框架布局中不可见,即使当我单击底部导航时,它也只显示下面的空白页面是我的主要活动代码我在谷歌上搜索过这个问题,但看起来我是唯一一个遇到这个问题的人

 public class MainActivity extends AppCompatActivity implements BottomNavigationView.OnNavigationItemSelectedListener{
       FrameLayout frameLayout;
       FragmentManager fragmentManager;
       Fragment fragment;
       BottomNavigationView bottomNavigationView;


@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        fragmentManager = getSupportFragmentManager();

        if(findViewById(R.id.frame_container)!=null){
            if(savedInstanceState!=null){

                return;
            }

        }
        bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_nav);
        //bottomNavigationView.setOnNavigationItemSelectedListener(this);
        //final SeekBar sb = (SeekBar) findViewById(R.id.sb);

    }


    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        Fragment fragment = null;
        switch (item.getItemId()){
            case R.id.navigation_home:
                fragment = new HomeFragment();
                loadFragment(fragment);
                return true;
            case R.id.navigation_feed:
                fragment = new FeedFragment();
                loadFragment(fragment);
                return true;
            case R.id.navigation_event:
                fragment = new EventsFragment();
                loadFragment(fragment);
                return true;
            case R.id.navigation_nearby:
                fragment = new NearbyFragment();
                loadFragment(fragment);
                return true;
            case R.id.navigation_profile:
                fragment = new ProfileFragment();
                loadFragment(fragment);
                return true;
        }

        return false;
    }


    private void loadFragment(Fragment fragment) {
        // load fragment
        //HomeFragment homeFragment = new HomeFragment();
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.replace(R.id.frame_container, fragment,null);
       // transaction.addToBackStack(null);
      /* Comment this line and it should work!*/
        //transaction.addToBackStack(null);
        transaction.commit();
    }

}

和我的 xml

<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:fillViewport="true"
    android:fitsSystemWindows="true"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">

<FrameLayout
    android:id="@+id/frame_container"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1">

</FrameLayout>
    <android.support.design.widget.BottomNavigationView
        android:id="@+id/bottom_nav"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:menu="@menu/navigation"
        android:backgroundTint="@color/nav_color"
        app:itemIconTint="@color/bottom_nav_fore_color"
        android:background="?android:attr/windowBackground"
        android:layout_weight="0.1">

    </android.support.design.widget.BottomNavigationView>
</LinearLayout>
舒巴姆·斯利瓦斯塔瓦

您的代码似乎正确,取消注释此行,然后检查:

  bottomNavigationView.setOnNavigationItemSelectedListener
                (new BottomNavigationView.OnNavigationItemSelectedListener() {
                    @Override
                    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                        Fragment selectedFragment = null;
                        switch (item.getItemId()) {
                            case R.id.action_item1:
                                selectedFragment = ItemOneFragment.newInstance();
                                break;
                            case R.id.action_item2:
                                selectedFragment = ItemTwoFragment.newInstance();
                                break;
                            case R.id.action_item3:
                                selectedFragment = ItemThreeFragment.newInstance();
                                break;
                        }
                        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
                        transaction.replace(R.id.frame_container, selectedFragment);
                        transaction.commit();
                        return true;
                    }
                });

希望这可以帮助 !

删除这个:

implements BottomNavigationView.OnNavigationItemSelectedListener

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在片段中隐藏底部导航视图

来自分类Dev

当片段加载闪烁时,使用导航组件进行底部导航

来自分类Dev

测试使用父活动的底部导航视图的片段

来自分类Dev

如何使用xml在底部导航视图上方设置片段?

来自分类Dev

加载新视图后保持原位的 nativescript 底部导航

来自分类Dev

骨干视图未加载

来自分类Dev

AngularJS视图未加载

来自分类Dev

AngularJS视图未加载

来自分类Dev

数据未加载到片段

来自分类Dev

片段未加载到 viewpager

来自分类Dev

Android Studio 片段未加载

来自分类Dev

Android导航底部片段重叠

来自分类Dev

底部导航和片段娱乐

来自分类Dev

EF导航属性未加载

来自分类Dev

微风导航属性未加载

来自分类Dev

EF导航属性未加载

来自分类Dev

除了底部导航视图之外,如何使片段的布局具有屏幕高度的高度?

来自分类Dev

在家庭活动中加载片段时的“幽灵”底部导航栏

来自分类Dev

Angular JS未加载视图

来自分类Dev

嵌套视图模板未加载

来自分类Dev

AngularJS路由视图未加载

来自分类Dev

表视图未加载数据

来自分类Dev

使底部导航视图背景透明

来自分类Dev

片段加载时从片段加载视图

来自分类Dev

使用底部导航栏管理片段

来自分类Dev

使用片段实现组成底部导航

来自分类Dev

实体框架6.1:导航属性未加载

来自分类Dev

实体框架6.1:导航属性未加载

来自分类Dev

实体框架导航属性未加载