2016-10-20 4 views
3

Ich implementiere BottomNavigationView mit dieser link ich implementiert alles Schritt für Schritt, aber meine navigationview nicht am unteren Rand des Bildschirms angezeigt.BottomNavigationView wird in meiner Aktivität nicht angezeigt

das ist was ich getan habe.

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; 
    } 
} 

und meine 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> 

und ich auch gradle Version 25 aktualisiert, sonst wird es nicht funktionieren.

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' 

Antwort

8

Der Grund ist es nicht der Fall funktioniert, weil menu im falschen Namensraum (design). Verwenden Sie stattdessen den Namespace app.

<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> 
+0

dank Mann .. seine Arbeit, .. –

+0

seine Arbeit für mich Dank – Adil

1

Versuchen Sie unten xml. Vergessen Sie nicht, app:layout_anchor und app:layout_anchorGravity="bottom" hinzuzufügen. Hier ist die BottomNavigationView mit der bottom an der FrameLayout verankert.

<?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> 
+1

noch erscheinen jetzt nicht –

Verwandte Themen