Android底部导航栏4个项目在某些设备上显示不正确
问题描述:
我遇到了一个小问题,因为我试图将4个图标添加到Android的底部导航栏中。Android底部导航栏4个项目在某些设备上显示不正确
On some devices it looks like this
But I want it to be looking like this
如何实现这一目标?在此先感谢
不知道你需要哪个代码。对于底部导航栏
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使用的viewpager刚刚添加的一切:
<?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"
我想尝试下这个link以防万一。
请添加代码。 – Ahmed
@Ahmed完成添加代码。不知道要添加什么 – floreich
任何会查看您的代码的人都会想要查看添加底部导航的位置和方式。 – Ahmed