Android 菜单项图标下的空标题空间
我使用的菜单项如下:Android 菜单项图标下的空标题空间,android,Android,我使用的菜单项如下: <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/tab_bookmarks" android:icon="@drawable/bookmark" android:title="@null"/> <item android:id="@+id/tab_shasha" android
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/tab_bookmarks"
android:icon="@drawable/bookmark"
android:title="@null"/>
<item
android:id="@+id/tab_shasha"
android:icon="@drawable/shasha"
android:height="54dp"
android:width="24dp"
android:title="@null"/>
<item
android:id="@+id/tab_home"
android:icon="@drawable/home"
android:title="@null"/>
<item
android:id="@+id/tab_tv"
android:icon="@drawable/tv"
android:title="@null"/>
<item
android:id="@+id/tab_more"
android:icon="@drawable/more"
android:title="@null"/>
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.navigation);
BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);
bottomNavigationView.setOnNavigationItemSelectedListener
(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment selectedFragment = null;
switch (item.getItemId()) {
case R.id.tab_bookmarks:
selectedFragment = BookmarksFragment.newInstance();
break;
case R.id.tab_home:
selectedFragment = AboutUs.newInstance();
break;
}
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame_layout, selectedFragment);
transaction.commit();
return true;
}
});
一切都很好,但是你可以看到菜单项有图标,但是我把标题设置为“@null”
因此,底部栏现在有图标,图标下面没有文本,但仍然有空标题空间,这导致图标变小
那个么,我如何设置并没有标题,比如让标题空间消失,不占用空间,让图标比现在更大
这是我的底部栏的照片:
您可以在图标下看到空标题上的空格,因此如何使图标的所有空格(如电视图标周围的粉红色正方形)变大,因为我尝试更改项目和其他解决方案的宽度和高度,但没有任何效果尝试使用此方法:
public void updateBottomBar() {
BottomNavigationMenuView menuView = (BottomNavigationMenuView) bottomNavigationView.getChildAt(0);
if (menuView != null) {
for (int i = 0; i < menuView.getChildCount(); i++) {
BottomNavigationItemView menuItemView = (BottomNavigationItemView) menuView.getChildAt(i);
ImageView icon = menuItemView.findViewById(R.id.icon);
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) icon.getLayoutParams();
params.gravity = Gravity.CENTER;
}
}
}
或
并删除代码
BottomNavigationViewHelper.disableShiftMode(bottomNavigationView)代码>请您解释一下以上代码是在初始化后应用的bottomNavigationView
。他找到图标并将其居中。那么你的意思是我应该在编写代码时保留我的代码,并将你提到的方法也添加到代码中@Ugar0ffman谢谢,我尝试了代码方式,但它不起作用,所以我将库更新为28,它与令人惊讶的新解决方案一起工作,现在标题隐藏,图标居中,但图标仍然很小,所以有没有办法使它变大?如果您能帮助我,非常感谢@ugar0ffa将此参数24dp
添加到dimens.xml
中,使其具有所需的大小,它将覆盖图标大小。
public void updateBottomBar() {
BottomNavigationMenuView menuView = (BottomNavigationMenuView) bottomNavigationView.getChildAt(0);
if (menuView != null) {
for (int i = 0; i < menuView.getChildCount(); i++) {
BottomNavigationItemView menuItemView = (BottomNavigationItemView) menuView.getChildAt(i);
ImageView icon = menuItemView.findViewById(R.id.icon);
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) icon.getLayoutParams();
params.gravity = Gravity.CENTER;
}
}
}
bottomNavigationView.setLabelVisibilityMode(LabelVisibilityMode.LABEL_VISIBILITY_UNLABELED);
<android.support.design.widget.BottomNavigationView
app:labelVisibilityMode="unlabeled" />