Sagar Chavada
Sagar Chavada

Reputation: 5269

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'

Upvotes: 7

Views: 16358

Answers (4)

KaranKulshrestha
KaranKulshrestha

Reputation: 318

Find Styles.xml in Values.(res/Values/Styles.xml) Change this

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

to this:

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">

Upvotes: 0

Charbel.AY
Charbel.AY

Reputation: 903

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

Upvotes: 1

Johan Berg Nilsson
Johan Berg Nilsson

Reputation: 1646

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>

Upvotes: 13

Srijith
Srijith

Reputation: 1715

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>

Upvotes: 1

Related Questions