简体   繁体   English

Android导航抽屉集标题

[英]Android Navigation Drawer Set Title

I want to change the title of my Navigation Drawer when a user clicks on the particular fragment of the navigation drawer. 当用户单击导航抽屉的特定片段时,我想更改导航抽屉的标题。 I'm new to the world of Android Programming. 我是Android编程世界的新手。 So please kindly help Below is my code 所以请帮忙以下是我的代码

Main Activity Code 主要活动代码

    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();

    }
}

I think something needs to be done here itself when a person selects any of the drawer items. 我认为,当一个人选择任何一个抽屉项目时,这里需要自己做一些事情。

Any other piece of code required let me know 需要其他任何代码让我知道

move variable of android.support.v7.widget.Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar); 移动android.support.v7.widget.Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);变量android.support.v7.widget.Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar); above just after setContentView in onCreate method of your activity & make it final . 以上在您活动的onCreate方法中的setContentView之后,使其final

when user select navigation drawer set title of ToolBar in onNavigationItemSelected like below. 当用户选择导航抽屉时,在onNavigationItemSelected设置ToolBar标题,如下所示。

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

to set ICON you can use 设置您可以使用的图标

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM