【问题标题】:Android Navigation Drawer Set TitleAndroid 导航抽屉设置标题
【发布时间】:2016-02-12 10:35:56
【问题描述】:

当用户单击导航抽屉的特定片段时,我想更改导航抽屉的标题。我是 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 navigation drawer


【解决方案1】:

在您的活动的onCreate 方法中将android.support.v7.widget.Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar); 的变量移到上面的setContentView 之后并使其变为final

当用户在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");
   }

设置你可以使用的ICON

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

【讨论】:

  • @sunny:检查已编辑的答案,您可以从 android SDK 导入支持库的示例代码。检查您的 android SDK AndroidSDK\extras\android\support\samples 中的路径 许多其他示例在这里 AndroidSDK\samples\android-23 都是在 Android Studio 中导入的示例运行它。它可以帮助你
  • 如何在网格视图中制作画廊,就像图像会在网格视图中显示,当你点击它时,它会显示一些文字。
  • 谢谢你,但是当我点击图片时它不会突出。应用会崩溃
  • 检查你的 android SDK 中的路径 AndroidSDK\extras\android\support\samples 许多其他示例在这里 AndroidSDK\samples\android-23 都是在 Android Studio 中运行的示例导入。此处提供的所有类型的示例请查看 SDK 示例
猜你喜欢
  • 2017-05-11
  • 1970-01-01
  • 2016-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多