我遇到了一个小问题,因为我试图在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>
答案 0 :(得分:3)
我通过更改标题的字体大小自行修复了
其他人都在努力解决这个问题:只需将这两行添加到dimens.xml
即可id
答案 1 :(得分:0)
从最小的事情可能是一个问题。不确定它是否与你使用的图像图标有关,但是你能看看图像图标是否恰好有任何填充,即图像本身?
同样出于调试目的,请删除标题或将其保留为空,看看它是否正确对齐图像图标。
请您更改以下内容,
app:showAsAction="never"
到
app:showAsAction="ifRoom"
我会尝试遵循此link以防万一。