[英]Android Bottom Navigation bar 4 Items not showing properly on some devices
我遇到了一个小问题,因为我试图将4个图标添加到Android的底部导航栏中。
如何实现呢? 提前致谢
不知道您需要哪个代码。 刚刚添加了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>
我自己通过更改标题的字体大小来修复它
其他为此苦苦挣扎的人:只需将这两行添加到您的dimens.xml中
<dimen name="design_bottom_navigation_text_size" tools:override="true">10sp</dimen>
<dimen name="design_bottom_navigation_active_text_size" tools:override="true">10sp</dimen>
从最小的角度来看可能是一个问题。 不知道它是否与您使用过的图像图标有关,但是请您查看图像图标是否恰好有填充物,即图像本身吗?
同样出于调试目的,请删除标题或将标题保留为空,以查看其是否与图像图标正确对齐。
您可以更改以下内容吗?
app:showAsAction="never"
至
app:showAsAction="ifRoom"
我会尝试遵循此链接 ,以防万一。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.