Android底部导航栏4在某些设备上无法正常显示的项目

时间:2017-11-10 23:44:42

标签: android material-design navbar

我遇到了一个小问题,因为我试图在Android的底部导航栏中添加4个图标。

On some devices it looks like this

But I want it to be looking like this

如何实现?提前致谢

不知道您需要哪些代码。刚刚添加了viewpager用于底部导航栏的所有内容

    bottomNavigationView.setOnNavigationItemSelectedListener(
            new BottomNavigationView.OnNavigationItemSelectedListener() {
                @Override
                public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                    switch (item.getItemId()) {
                        case R.id.action_stdplan:
                            viewPager.setCurrentItem(0);
                            break;
                        case R.id.action_klausur:
                            viewPager.setCurrentItem(1);
                            break;
                        case R.id.action_hausaufgaben:
                            viewPager.setCurrentItem(2);
                            break;
                        case R.id.action_fehlzeiten:
                            viewPager.setCurrentItem(3);
                            break;
                    }
                    return false;
                }
            });



    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }


        @Override
        public void onPageSelected(int position) {
            if (prevMenuItem != null) {
                prevMenuItem.setChecked(false);
            }
            else
            {
                bottomNavigationView.getMenu().getItem(0).setChecked(false);
            }
            Log.d("page", "onPageSelected: "+position);
            bottomNavigationView.getMenu().getItem(position).setChecked(true);
            prevMenuItem = bottomNavigationView.getMenu().getItem(position);

        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

    setupViewPager(viewPager);
}
private void setupViewPager(ViewPager viewPager) {
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
    stdplanFragment =new StdplanFragment();
    klausurenFragment =new KlausurenFragment();
    hausaufgabenFragment =new HausaufgabenFragment();
    fehlzeitenFragment =new FehlzeitenFragment();
    adapter.addFragment(stdplanFragment);
    adapter.addFragment(klausurenFragment);
    adapter.addFragment(hausaufgabenFragment);
    adapter.addFragment(fehlzeitenFragment);
    viewPager.setAdapter(adapter);
}

}

bottom_navigation.xml:

    <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_stdplan"
        android:checked="true"
        android:icon="@drawable/ic_dashboard_black_24dp"
        android:title="@string/tab1"
        app:showAsAction="never" />
    <item
        android:id="@+id/action_klausur"
        android:checked="false"
        android:icon="@android:drawable/ic_menu_agenda"
        android:title="@string/tab2"
        app:showAsAction="never" />
    <item
        android:id="@+id/action_hausaufgaben"
        android:checked="false"
        android:icon="@android:drawable/ic_menu_manage"
        android:title="Hausaufgaben"
        app:showAsAction="never" />
    <item
        android:id="@+id/action_fehlzeiten"
        android:checked="false"
        android:icon="@android:drawable/ic_menu_recent_history"
        android:title="@string/tab3"
        app:showAsAction="never" />
</menu>

2 个答案:

答案 0 :(得分:3)

我通过更改标题的字体大小自行修复了

其他人都在努力解决这个问题:只需将这两行添加到dimens.xml

即可
id

答案 1 :(得分:0)

从最小的事情可能是一个问题。不确定它是否与你使用的图像图标有关,但是你能看看图像图标是否恰好有任何填充,即图像本身?

同样出于调试目的,请删除标题或将其保留为空,看看它是否正确对齐图像图标。

请您更改以下内容,

app:showAsAction="never"

app:showAsAction="ifRoom"

我会尝试遵循此link以防万一。