Панель навигации в Android

Опубликовано: 1 Декабря, 2021

Панель навигации - это наиболее распространенная функция, предлагаемая Android, а панель навигации - это панель пользовательского интерфейса, которая отображает главное меню навигации вашего приложения. Это также один из важных элементов пользовательского интерфейса, который обеспечивает действия, предпочтительные для пользователей, такие как пример изменения профиля пользователя, изменение настроек приложения и т. Д. В этой статье пошагово обсуждалась реализация панели навигации в Android.

The navigation drawer slides in from the left and contains the navigation destinations for the app.

Пользователь может просматривать панель навигации, когда пользователь проводит пальцем от левого края действия. Они также могут найти его из домашнего занятия, нажав значок приложения на панели действий. Значок ящика отображается во всех местах назначения верхнего уровня, которые используют DrawerLayout. Взгляните на следующее изображение, чтобы получить представление о панели навигации.

Шаги по реализации навигационного ящика в Android

Шаг 1. Создайте проект Android Studio

  • Создайте пустой проект студии Android Activity.
  • Обратитесь к Android | Как создать / запустить новый проект в Android Studio? о том, как создать пустой проект студии Android Activity. Обратите внимание, что мы собираемся реализовать этот проект на языке Java.

Шаг 2: Добавление зависимости к проекту

  • В этом обсуждении мы собираемся использовать панель навигации по дизайну материалов.
  • Поэтому добавьте следующую зависимость дизайна материала в файл Gradle уровня приложения.

implementation ‘com.google.android.material:material:1.3.0-alpha03’

  • Обратитесь к следующему изображению, если не удается найти файл Gradle уровня приложения, вызывающий зависимость (в представлении иерархии проекта).
  • После вызова зависимости нажмите кнопку « Синхронизировать сейчас » . Убедитесь, что система подключена к сети, чтобы Android Studio загрузила необходимые файлы.

Шаг 3: Создание меню в папке меню

  • Создайте папку меню в папке res. Реализовать меню.
  • Обратитесь к следующему видео, чтобы создать макет для реализации меню.
  • Вызовите следующий код в navigation_menu.xml

XML

<? xml version = "1.0" encoding = "utf-8" ?>
< menu xmlns:android = " http://schemas.android.com/apk/res/android "
tools:ignore = "HardcodedText" >
< item
android:id = "@+id/nav_account"
android:title = "My Account" />
< item
android:id = "@+id/nav_settings"
android:title = "Settings" />
< item
android:id = "@+id/nav_logout"
android:title = "Logout" />
</ menu >


Шаг 4. Работа с файлом activity_main.xml

  • Вызовите следующий код в activity_main.xml, чтобы настроить основные вещи, необходимые для панели навигации.

XML

<? xml version = "1.0" encoding = "utf-8" ?>
<!--the root view must be the DrawerLayout-->
< androidx.drawerlayout.widget.DrawerLayout
android:id = "@+id/my_drawer_layout"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
tools:context = ".MainActivity"
tools:ignore = "HardcodedText" >
< LinearLayout
android:layout_width = "match_parent"
android:layout_height = "match_parent" >
< TextView
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_marginTop = "128dp"
android:gravity = "center"
android:text = "GeeksforGeeks"
android:textSize = "18sp" />
</ LinearLayout >
<!--this the navigation view which draws
and shows the navigation drawer-->
<!--include the menu created in the menu folder-->
< com.google.android.material.navigation.NavigationView
android:layout_width = "wrap_content"
android:layout_height = "match_parent"
android:layout_gravity = "start"
app:menu = "@menu/navigation_menu" />
</ androidx.drawerlayout.widget.DrawerLayout >


Выходной интерфейс:

  • Следует отметить, что значок ящика меню по-прежнему не отображается на панели действий. Нам нужно программно установить значок и его функцию открытия-закрытия.

Шаг 5. Включите строки Open Close в string.xml

  • Вызовите следующий код в файле styles.xml.

XML

< resources >
< string name = "app_name" >Navigation Drawer</ string >
<!--to toggle the open close button
of the navigation drawer-->
< string name = "nav_open" >Open</ string >
< string name = "nav_close" >Close</ string >
</ resources >

Шаг 6: Работа с файлом MainActivity.java

  • Вызовите следующий код в файле MainActivity.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?
Щелкните здесь, чтобы перейти к уникальному руководству, составленному нашими экспертами с целью мгновенно подготовить вашу отрасль!