导航抽屉是android提供的最常见功能,而导航抽屉是一个UI面板,用于显示您应用的主导航菜单。它也是重要的UI元素之一,它为用户提供了更可取的操作,例如更改用户个人资料,更改应用程序设置等。在本文中,已逐步讨论了在android中实现导航抽屉的方法。
The navigation drawer slides in from the left and contains the navigation destinations for the app.
当用户从活动的左边缘滑动手指时,用户可以查看导航抽屉。他们还可以通过点击操作栏中的应用程序图标,从家庭活动中找到它。抽屉图标显示在所有使用DrawerLayout的顶级目标上。请看以下图片,以了解有关“导航”抽屉的信息。
在Android中实现导航抽屉的步骤
步骤1:建立Android Studio专案
- 创建一个空的活动android studio项目。
- 参考Android |如何在Android Studio中创建/启动新项目?关于如何创建一个空的活动android studio项目。注意,我们将使用Java语言实现该项目。
步骤2:向项目添加依赖项
- 在此讨论中,我们将使用“材料设计”导航抽屉。
- 因此,将以下Material Design依赖项添加到应用程序级Gradle文件中。
implementation ‘com.google.android.material:material:1.3.0-alpha03’
- 如果无法找到应用程序级别的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的基础知识吗?
单击此处,前往由我们的专家精心策划的指南,以使您立即做好行业准备!