底部导航图标被裁剪为Android

时间:2018-08-02 22:29:53

标签: android icons bottomnavigationview

我正在使用Android Studio和Android在Botton导航栏上组装一个应用程序。有两个图标看起来还不错,但是当我添加四个图标时,这些图标看起来就被裁剪了。我找不到这样的其他错误。欢迎任何建议。

Cropped icons bottom nav 4 options

这是底部导航(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_lines"
        android:enabled="true"
        android:icon="@drawable/ic_lines_off"
        android:title="Lines"
        android:background="@android:color/transparent"
        app:showAsAction="ifRoom" />

    <item
        android:id="@+id/action_contacts"
        android:enabled="true"
        android:icon="@drawable/ic_contacts_off"
        android:title="Contacts"
        android:background="@android:color/transparent"
        app:showAsAction="ifRoom" />


    <item
        android:id="@+id/action_conversations"
        android:enabled="true"
        android:icon="@drawable/ic_conversations_off"
        android:title="Conversations"
        android:background="@android:color/transparent"
    app:showAsAction="ifRoom" />

    <item
        android:id="@+id/action_settings"
        android:enabled="true"
        android:icon="@drawable/ic_settings_off"
        android:title="Settings"
        android:background="@android:color/transparent"
        app:showAsAction="ifRoom" />

</menu>

在我的activity.xml中,这样调用底部菜单:

    <android.support.design.widget.BottomNavigationView
    android:id="@+id/bottomNavigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:itemIconTint="@drawable/bnv_tab_item_foreground"
    app:itemTextColor="@drawable/bnv_tab_item_foreground"
    app:menu="@menu/bottom_navigation" />

问题更新:

我尝试更改

     app:showAsAction="ifRoom"

对于

      app:showAsAction="always"

它不能解决问题。这个问题没有改变。并且它不会按应有的方式在每个图标中显示标签。仅对所选的一个。

一种解决方法是在活动的底部导航调用中添加一个主题,如下所示:

android:theme="?attr/toolbarNavigationButtonStyle"

我不知道它为什么起作用,但是它显然可以解决许多问题,三星Galaxy Note 8中的设备

这里是“ bnv_tab_item_foreground”

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:color="@color/colorAccent" />
    <item android:color="@android:color/darker_gray"  />
</selector>

3 个答案:

答案 0 :(得分:0)

尝试更改以下属性的值:-

app:showAsAction="always" 

如果仍然存在,则问题仍然存在,请提供文件 “ bnv_tab_item_foreground”

答案 1 :(得分:0)

使用支持库28。然后,只需将app:labelVisibilityMode="labeled"添加到您的BottomNavigationView XML声明中即可。

希望这会有所帮助

答案 2 :(得分:0)

我认为这是由于您的布局不适合“系统”窗口所致,您可以通过 具有底部导航的布局 轻松地解决此问题在根布局中添加 android:fitsSystemWindows =“ true” ,就像我在下面所做的那样

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:fitsSystemWindows="true">
 
  <!--things come here -->

</RelativeLayout>