Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

BottomNavigationView not showing in my activity

I am implementing BottomNavigationView using this link i implemented everything step by step but my navigationview not showup at bottom of the screen.

this is what i done.

public class MainActivity extends AppCompatActivity implements ActivityCompat.OnRequestPermissionsResultCallback {

    Intent intent = null;
    BottomNavigationView navigationView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        navigationView = (BottomNavigationView) findViewById(R.id.navigation); 

        navigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {

                int id = item.getItemId();
                if(id == R.id.program){
                    intent = new Intent(MainActivity.this, MainActivity.class);
                    startActivity(intent);
                    finish();
                }
                if(id == R.id.access){
                    try {
                        manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
                        if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
                            Intent myIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                            startActivity(myIntent);
                            overridePendingTransition(R.anim.push_up_in,
                                    R.anim.push_up_out);
                        } else {
                            intent = new Intent(MainActivity.this, Access.class);
                            startActivity(intent);
                            finish();
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return true;
                }
                if(id == R.id.informations){
                    intent = new Intent(MainActivity.this, Information.class);
                    startActivity(intent);
                    finish();
                    return true;
                }
                if(id == R.id.contact){
                    intent = new Intent(MainActivity.this, Contact.class);
                    startActivity(intent);
                    finish();
                    return true;
                }
                return false;
            }
        });
     }
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        menu = navigationView.getMenu(); <---- // -->
        getMenuInflater().inflate(R.menu.menu_main, menu);

        return true;
    }
}

and my activity.xml

<android.support.design.widget.CoordinatorLayout 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:background="@color/colorWhite">

    <android.support.design.widget.BottomNavigationView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:design="http://schema.android.com/apk/res/android.support.design"
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_gravity="bottom"
        design:menu="@menu/menu_main" />
</android.support.design.widget.CoordinatorLayout>

and i also updated gradle version to 25, otherwise it will not work.

compileSdkVersion 25
buildToolsVersion "24.0.3"
targetSdkVersion 25

compile 'com.android.support:appcompat-v7:25.0.0'
compile 'com.android.support:design:25.0.0'
like image 873
Sagar Chavada Avatar asked Oct 20 '16 12:10

Sagar Chavada


People also ask

How to add bottom navigation View?

Add the support library in the build. gradle file and add a dependency in the dependencies section. This library has the inbuilt widget for the Bottom Navigation view so through this library it can be directly added.

What is bottom navigation in android called?

com.google.android.material.bottomnavigation.BottomNavigationView. Represents a standard bottom navigation bar for application. It is an implementation of material design bottom navigation. Bottom navigation bars make it easy for users to explore and switch between top-level views in a single tap.


3 Answers

The reason it doesn't work is because menu is in the wrong namespace (design). Use the app namespace instead.

<android.support.design.widget.CoordinatorLayout
    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:background="@color/colorWhite">

    <android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_gravity="bottom"
        app:menu="@menu/menu_main" />
</android.support.design.widget.CoordinatorLayout>
like image 108
Johan Berg Nilsson Avatar answered Sep 19 '22 01:09

Johan Berg Nilsson


Try below xml. Don't forget to add app:layout_anchor and app:layout_anchorGravity="bottom". Here the BottomNavigationView is anchored to the FrameLayout with gravity bottom.

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".MainActivity">

<FrameLayout
    android:id="@+id/rv"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <!-- Contents -->
</FrameLayout>

<android.support.design.widget.BottomNavigationView
    android:id="@+id/nm_bottom"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorPrimaryDark"
    android:foregroundTint="@color/colorAccent"
    app:itemIconTint="@android:color/white"
    app:itemTextColor="@android:color/white"
    app:layout_anchor="@+id/rv"
    app:layout_anchorGravity="bottom"
    app:menu="@menu/nav_menu" />

</android.support.design.widget.CoordinatorLayout>
like image 43
Srijith Avatar answered Sep 18 '22 01:09

Srijith


I had this problem because my BottomNavigationView was not showing in the design on the android studio. But when I ran the code it appeared on my phone.

So If you did not try running it. Run it and check before you search for answers maybe that is your problem

like image 34
Charbel.AY Avatar answered Sep 19 '22 01:09

Charbel.AY