2016-02-12 143 views
0

我想改变我的抽屉式导航栏的标题,当用户点击导航抽屉的特定片段。我是Android编程领域的新手。所以,请好心帮下面是我的代码Android的抽屉式导航栏设置标题

主要活动代码

package com.androidbelieve.HIT_APP; 

import android.os.Bundle; 
import android.support.design.widget.NavigationView; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentTransaction; 
import android.support.v4.widget.DrawerLayout; 
import android.support.v7.app.ActionBarDrawerToggle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.MenuItem; 

public class MainActivity extends AppCompatActivity{ 
    DrawerLayout mDrawerLayout; 
    NavigationView mNavigationView; 
    FragmentManager mFragmentManager; 
    FragmentTransaction mFragmentTransaction; 

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

     /** 
     *Setup the DrawerLayout and NavigationView 
     */ 

     mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout); 
     mNavigationView = (NavigationView) findViewById(R.id.shitstuff) ; 




     /** 
     * Lets inflate the very first fragment 
     * Here , we are inflating the TabFragment as the first Fragment 
     */ 

     mFragmentManager = getSupportFragmentManager(); 
     mFragmentTransaction = mFragmentManager.beginTransaction(); 
     // mFragmentTransaction.replace(R.id.containerView,new TabFragment()).commit(); 
     mFragmentTransaction.replace(R.id.containerView,new HomeFragment()).commit(); 


     /** 
     * Setup click events on the Navigation View Items. 
     */ 

     mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 
      @Override 
      public boolean onNavigationItemSelected(MenuItem menuItem) { 
       mDrawerLayout.closeDrawers(); 




       if (menuItem.getItemId() == R.id.nav_item_home) { 
        FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction(); 
        fragmentTransaction.replace(R.id.containerView,new HomeFragment()).commit(); 

       } 

       if (menuItem.getItemId() == R.id.nav_item_dept) { 
        FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction(); 
        fragmentTransaction.replace(R.id.containerView,new DeptFragment()).commit(); 

       } 

       if (menuItem.getItemId() == R.id.nav_item_facility) { 
        FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction(); 
        fragmentTransaction.replace(R.id.containerView,new FacilityFragment()).commit(); 

       } 

       if (menuItem.getItemId() == R.id.nav_item_placement) { 
        FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction(); 
        fragmentTransaction.replace(R.id.containerView,new PlacementFragment()).commit(); 

       } 

       if (menuItem.getItemId() == R.id.nav_item_gallery) { 
        FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction(); 
        fragmentTransaction.replace(R.id.containerView,new GalleryFragment()).commit(); 

       } 

       if (menuItem.getItemId() == R.id.nav_item_developer) { 
        FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction(); 
        fragmentTransaction.replace(R.id.containerView,new DeveloperFragment()).commit(); 

       } 



       if (menuItem.getItemId() == R.id.nav_item_near) { 
        FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction(); 
        fragmentTransaction.replace(R.id.containerView,new NearFragment()).commit(); 

       } 


       if (menuItem.getItemId() == R.id.nav_item_notify) { 
        FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction(); 
        fragmentTransaction.replace(R.id.containerView,new NotifyFragment()).commit(); 

       } 

       if (menuItem.getItemId() == R.id.nav_item_vtu) { 
        FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction(); 
        xfragmentTransaction.replace(R.id.containerView,new TabFragment()).commit(); 
       } 


       return false; 

      } 



     }); 

     /** 
     * Setup Drawer Toggle of the Toolbar 
     */ 

     android.support.v7.widget.Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar); 
     ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this,mDrawerLayout, toolbar,R.string.app_name, 
       R.string.app_name); 

     mDrawerLayout.setDrawerListener(mDrawerToggle); 

     mDrawerToggle.syncState(); 

    } 
} 

我觉得这里需要自己做了什么,当一个人选择任何抽屉物品。

的任何其他部分的代码需要让我知道的android.support.v7.widget.Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);刚过setContentView上述

+0

要更改导航抽屉标题或动作条/工具栏标题? –

+0

感谢工作像一个魅力 – sunny

+0

我工作在我的学校项目可以请你帮我!我怎么能mssg你问的疑惑 – sunny

回答

1

移动变量在你的活动onCreate方法&使其final

当用户选择导航抽屉设置的ToolBar标题中onNavigationItemSelected像的下方。

if (menuItem.getItemId() == R.id.nav_item_home) { 
    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction(); 
    fragmentTransaction.replace(R.id.containerView,new HomeFragment()).commit(); 
    toolbar.setTitle("Your Fragment Name"); 
    } 

设置图标,你可以使用

toolbar.setLogo(ContextCompat.getDrawable(MainActivity.this, R.drawable.cheese_1)); 
+0

与文本一起我怎样才能显示它旁边的图标 – sunny

+0

@sunny:检查编辑答案,你可以从Android SDK中导入支持库的样例代码。在Android SDK中检查路径AndroidSDK \ extras \ android \ support \ samples很多其他示例在这里AndroidSDK \ samples \ android-23都是在Android Studio中运行示例导入的。它帮助你 –

+0

如何在网格视图中创建图库,就像图像将在网格视图中显示,当你点击它时,它将显示一些文本。 – sunny