2016-10-20 12 views
3

私はBottomNavigationViewを実装していますが、これはlink です。手順をすべて段階的に実装しましたが、ナビゲーションビューは画面の下部に表示されません。BottomNavigationViewが自分のアクティビティに表示されません

これは私が行ったことです。

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

と私の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> 

と私はまた、それ以外の場合は動作しません、25にGradleのバージョンを更新しました。

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' 

答えて

8

menuが間違った名前空間(design)であるので、それが動作しない理由があります。代わりに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

感謝の男...その作業を表示されませ感謝 –

+0

その仕事、今 – Adil

1

以下を試してください。xml。 app:layout_anchorapp:layout_anchorGravity="bottom"を追加することを忘れないでください。ここでBottomNavigationViewは、FrameLayoutに重力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> 
+1

まだ私のために... –

関連する問題