[英]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.