底部导航视图不显示图标或标题

时间:2019-02-02 13:21:30

标签: android android-studio bottomnavigationview

我正在底部的导航栏中创建一个包含三个项目的应用程序。我尝试实现它。代码看起来不错,没有错误,只是不会显示图标或标签。我看了其他类似的问题,但是没有一个我要找的答案。

我正在使用android studio 3.3

这是我的底部导航视图:

<RelativeLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  xmlns:app="http://schemas.android.com/apk/res-auto">

  <android.support.design.widget.BottomNavigationView
     android:layout_width="match_parent"
     android:layout_height="56dp"
     android:layout_alignParentStart="true"
     android:layout_alignParentBottom="true"
     app:menu="@menu/nav_items" />

nav_items文件

<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:icon="@drawable/outline_home_black_18dp"
    android:title="@string/nav_home" />
<item
    android:icon="@drawable/outline_home_black_18dp"
    android:title="@string/nav_search" />
<item
    android:icon="@drawable/outline_home_black_18dp"
    android:title="@string/nav_account" />
</menu>

3 个答案:

答案 0 :(得分:0)

如果您转到Android Studio->文件->新建项目->底部导航活动,那么Android Studio会提供一个满足您要求的有效示例。

对于您的nav_items文件,您可以尝试添加如下所示的android id:

<item
    android:id="@+id/nav0"
    android:icon="@drawable/outline_home_black_18dp"
    android:title="@string/nav_home" />

<item
    android:id="@+id/nav1"
    android:icon="@drawable/outline_home_black_18dp"
    android:title="@string/nav_search" />

<item
    android:id="@+id/nav2"
    android:icon="@drawable/outline_home_black_18dp"
    android:title="@string/nav_account" />

BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
    = item -> {
        switch (item.getItemId()) {

            case R.id.nav0:
                Intent intent = new Intent(YourActivity.this, NextActivity.class);
                startActivity(intent);
                break;
            case R.id.nav1:
                Intent intent1 = new Intent(YourActivity.this, AnotherActivity.class);
                startActivity(intent1);
                break;
            case R.id.nav2:
                Intent intent2 = new Intent(YourActivity.this, AnotherNextActivity.class);
                startActivity(intent2);
                break;     
        }
        return false;
    };


@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
    // Add below 2 lines for BottomNavigationBar
BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.nav_items);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
}

如果您将Activity用于3个项目,则可以在Application Java文件中添加以下switch语句:

{{1}}

希望这会有所帮助。

答案 1 :(得分:0)

尝试使用此功能

<android.support.design.widget.BottomNavigationView
 android:layout_width="match_parent"
 android:layout_height="56dp"
 android:layout_alignParentStart="true"
 android:layout_alignParentBottom="true"
 app:menu="@menu/nav_items" 
 app:labelVisibilityMode="labeled"/>

答案 2 :(得分:0)

查找名为“label visibility”的属性并将其在整个底部导航中设为 true