الخطوة 1: إنشاء مشروع Android Studio جديد
قم بإنشاء مشروع استوديو android لنشاط فارغ.
الخطوة 2: إضافة تبعية إلى المشروع
في هذه المناقشة ، سنستخدم درج التنقل في Material Design . لذا أضف تبعية تصميم المواد التالية إلى ملف Gradle على مستوى التطبيق.
implementation 'com.google.android.material:material:1.3.0-alpha03'
ارجع إلى الصورة التالية إذا لم تتمكن من تحديد موقع ملف Gradle على مستوى التطبيق الذي يستدعي التبعية (ضمن عرض التسلسل الهرمي للمشروع). بعد استدعاء التبعية ، انقر على زر "Sync Now". تأكد من اتصال النظام بالشبكة حتى يقوم 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"
xmlns:tools="http://schemas.android.com/tools"
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
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
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="أكاديمية حسوب"
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
قم باستدعاء الكود التالي في ملف app / res / القيم / strings.xml. XML
<resources>
<string name="app_name">Navigation Drawer</string>
<!-- للتبديل بين زر فتح الإغلاق لدرج التنقل -->
<string name="nav_open">Open</string>
<string name="nav_close">Close</string>
</resources>
الخطوة 6: العمل مع ملف MainActivity
قم باستدعاء الكود التالي في ملف MainActivity لإظهار رمز القائمة على شريط الإجراءات وتنفيذ وظيفة الفتح والإغلاق لدرج التنقل. تمت إضافة التعليقات داخل الكود من أجل فهم أفضل.
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);
// مثيل تخطيط الدرج لتبديل رمز القائمة لفتحه
// الدرج وزر الرجوع لإغلاق الدرج
drawerLayout = findViewById(R.id.my_drawer_layout);
actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.nav_open, R.string.nav_close);
// تمرير مفتاح التبديل فتح وإغلاق لمستمع تخطيط الدرج
// لتبديل الزر
drawerLayout.addDrawerListener(actionBarDrawerToggle);
actionBarDrawerToggle.syncState();
// لجعل رمز درج التنقل يظهر دائمًا على شريط الإجراءات
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
// تجاوز onOptionsItemSelected ()
// وظيفة للتنفيذ
// العنصر انقر فوق رد الاتصال المستمع
// لفتح وإغلاق التنقل
// الدرج عند النقر على الأيقونة
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (actionBarDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}
}