📌  相关文章
📜  Android中的导航抽屉

📅  最后修改于: 2021-05-10 14:52:14             🧑  作者: Mango

导航抽屉是android提供的最常见功能,而导航抽屉是一个UI面板,用于显示您应用的主导航菜单。它也是重要的UI元素之一,它为用户提供了更可取的操作,例如更改用户个人资料,更改应用程序设置等。在本文中,已逐步讨论了在android中实现导航抽屉的方法。

当用户从活动的左边缘滑动手指时,用户可以查看导航抽屉。他们还可以通过点击操作栏中的应用程序图标,从家庭活动中找到它。抽屉图标显示在所有使用DrawerLayout的顶级目标上。请看以下图片,以了解有关“导航”抽屉的信息。

Android中的导航抽屉

在Android中实现导航抽屉的步骤

步骤1:建立Android Studio专案

  • 创建一个空的活动android studio项目。
  • 参考Android |如何在Android Studio中创建/启动新项目?关于如何创建一个空的活动android studio项目。注意,我们将使用Java语言实现该项目。

步骤2:向项目添加依赖项

  • 在此讨论中,我们将使用“材料设计”导航抽屉。
  • 因此,将以下Material Design依赖项添加到应用程序级Gradle文件中。
  • 如果无法找到应用程序级别的Gradle文件调用依赖项(在项目层次结构视图下),请参考下图。
  • 调用依赖项后,单击立即同步按钮。确保系统已连接到网络,以便Android Studio下载所需的文件。

步骤3:在菜单文件夹中创建菜单

  • 在res文件夹下创建菜单文件夹。实现菜单。
  • 请参考以下视频以创建布局以实现菜单。
  • navigation_menu.xml中调用以下代码
XML


 
    
 
    
 
    
 


XML

 


 
    
 
        
 
    
 
    
    
    
 


XML

    Navigation Drawer
 
    
    Open
    Close


Java
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.drawerlayout.widget.DrawerLayout;
import android.os.Bundle;
import android.view.MenuItem;
 
public class MainActivity extends AppCompatActivity {
 
    public DrawerLayout drawerLayout;
    public ActionBarDrawerToggle actionBarDrawerToggle;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        // drawer layout instance to toggle the menu icon to open
        // drawer and back button to close drawer
        drawerLayout = findViewById(R.id.my_drawer_layout);
        actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.nav_open, R.string.nav_close);
 
        // pass the Open and Close toggle for the drawer layout listener
        // to toggle the button
        drawerLayout.addDrawerListener(actionBarDrawerToggle);
        actionBarDrawerToggle.syncState();
 
        // to make the Navigation drawer icon always appear on the action bar
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }
 
    // override the onOptionsItemSelected()
      // function to implement
    // the item click listener callback
    // to open and close the navigation
      // drawer when the icon is clicked
    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
 
        if (actionBarDrawerToggle.onOptionsItemSelected(item)) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}


步骤4:使用activity_main.xml文件

  • activity_main.xml中调用以下代码,以设置导航抽屉所需的基本内容。

XML格式


 


 
    
 
        
 
    
 
    
    
    
 

输出界面:

  • 要注意的一件事是菜单抽屉图标仍未出现在操作栏上。我们需要以编程方式设置图标及其打开和关闭功能。

步骤5:在字符串.xml中包含Open Close字符串

  • 在styles.xml文件中调用以下代码。

XML格式


    Navigation Drawer
 
    
    Open
    Close

步骤6:使用MainActivity。 Java文件

  • MainActivity中调用以下代码。 Java文件,以在操作栏上显示菜单图标,并实现导航抽屉的打开-关闭功能。
  • 在代码中添加了注释,以更好地理解。

Java

import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.drawerlayout.widget.DrawerLayout;
import android.os.Bundle;
import android.view.MenuItem;
 
public class MainActivity extends AppCompatActivity {
 
    public DrawerLayout drawerLayout;
    public ActionBarDrawerToggle actionBarDrawerToggle;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        // drawer layout instance to toggle the menu icon to open
        // drawer and back button to close drawer
        drawerLayout = findViewById(R.id.my_drawer_layout);
        actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.nav_open, R.string.nav_close);
 
        // pass the Open and Close toggle for the drawer layout listener
        // to toggle the button
        drawerLayout.addDrawerListener(actionBarDrawerToggle);
        actionBarDrawerToggle.syncState();
 
        // to make the Navigation drawer icon always appear on the action bar
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }
 
    // override the onOptionsItemSelected()
      // function to implement
    // the item click listener callback
    // to open and close the navigation
      // drawer when the icon is clicked
    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
 
        if (actionBarDrawerToggle.onOptionsItemSelected(item)) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

输出:在模拟器上运行

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处,前往由我们的专家精心策划的指南,以使您立即做好行业准备!