المخططات المتداخله للتنقل

الإعلانات

المخططات “الرسوم البيانيه” المتداخله للتنقل

 

 

المخططات المتداخله للتنقل

يمكن تجميع سلسلة من الوجهات، في مخطط متداخل، ضمن مخطط التنقل الرئيسي، يسمى المخطط “الرسم البياني” الأساسي.

تفيد المخططات المتداخلة، في تنظيم وإعادة إستخدام، أقسام واجهة المستخدم لتطبيقك، مثل تدفق تسجيل الدخول المستقل.

يقوم المخطط المتداخل، بإختصار الوجهات الخاصة به.

وكما هو الحال مع المخطط الأساسي، يجب أن يكون للمخطط المتداخل، وجهة محددة كوجهة البدء.

الوجهات خارج المخطط المتداخل، مثل تلك الوجهات الموجودة على المخطط الأساسي، يمكنها الوصول إلى المخطط المتداخل، فقط من خلال وجهة البداية.

يعرض الشكل 1 مخطط للتنقل، لتطبيق بسيط لتحويل الأموال. من وجهة البداية في اليسار، يحتوي المخطط على تدفقين:

أحدهما في الجزء العلوي لإرسال الأموال، وآخر في الجزء السفلي لعرض رصيد الحساب.

 

 

الشكل 1. مخطط بياني لنقل الأموال

 

 

لتجميع وجهات في مخطط متداخل، قم بما يلي:

1- في “محرر التنقل”، أضغط مع الإستمرار على مفتاح Shift، ثم أنقر على الوجهات التي تريد تضمينها في المخطط المتداخل.

2- أنقر بزر الماوس الأيمن لفتح قائمة السياق، ثم حدد نقل إلى مخطط متداخل> مخطط جديد. يتم وضع الوجهات في المخطط المتداخل.

يعرض الشكل 2 مخططاً متداخلاً في محرر التنقل:

الشكل 2. مخطط متداخل في محرر التنقل

 

3 – أنقر على المخطط المتداخل. تظهر السمات التالية في لوحة السمات:

 

  • النوع الذي يحتوي على “مخطط متداخل”.

 

  • المعرّف، الذي يحتوي على معرف تم تعيينه للنظام، للمخطط المتداخل.

يتم إستخدام هذا المعرّف، للإشارة إلى المخطط المتداخل من الكود.

4- أنقر نقراً مزدوجاً على المخطط المتداخل لعرض وجهاته.

5- أنقر فوق علامة التبويب نص، للتبديل إلى طريقة عرض XML.

تمت إضافة مخطط تنقل متداخل، إلى المخطط البياني. مخطط التنقل هذا يحتوي على عناصر navigation التنقل الخاصة به..

إلى جانب معرّفه الخاص، وسمة startDestination التي تشير إلى الوجهة الأولى في المخطط المتداخل:

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    app:startDestination="@id/mainFragment">
    <fragment
        android:id="@+id/mainFragment"
        android:name="com.example.cashdog.cashdog.MainFragment"
        android:label="fragment_main"
        tools:layout="@layout/fragment_main" >
        <action
            android:id="@+id/action_mainFragment_to_chooseRecipient"
            app:destination="@id/sendMoneyGraph" />
        <action
            android:id="@+id/action_mainFragment_to_viewBalanceFragment"
            app:destination="@id/viewBalanceFragment" />
    </fragment>
    <fragment
        android:id="@+id/viewBalanceFragment"
        android:name="com.example.cashdog.cashdog.ViewBalanceFragment"
        android:label="fragment_view_balance"
        tools:layout="@layout/fragment_view_balance" />
    <navigation android:id="@+id/sendMoneyGraph" app:startDestination="@id/chooseRecipient">
        <fragment
            android:id="@+id/chooseRecipient"
            android:name="com.example.cashdog.cashdog.ChooseRecipient"
            android:label="fragment_choose_recipient"
            tools:layout="@layout/fragment_choose_recipient">
            <action
                android:id="@+id/action_chooseRecipient_to_chooseAmountFragment"
                app:destination="@id/chooseAmountFragment" />
        </fragment>
        <fragment
            android:id="@+id/chooseAmountFragment"
            android:name="com.example.cashdog.cashdog.ChooseAmountFragment"
            android:label="fragment_choose_amount"
            tools:layout="@layout/fragment_choose_amount" />
    </navigation>
</navigation>

 

 

6- في الكود الخاص بك، قم بتمرير معرف المصدر للإجراءات، التي تربط المخطط الأساسي بالمخطط المتداخل:

KOTLIN

view.findNavController().navigate(R.id.action_mainFragment_to_sendMoneyGraph)

JAVA

Navigation.findNavController(view).navigate(R.id.action_mainFragment_to_sendMoneyGraph);

 

7- بالعودة إلى علامة التبويب تصميم، يمكنك العودة إلى المخطط الأساسي عن طريق النقر فوق Root.

 

 

 

 

 

الإشارة إلى مخططات التنقل الأخرى بإستخدام <include>


داخل مخطط التنقل، يمكنك الإشارة إلى المخططات الأخرى بإستخدام include. في حين أن هذا وظيفياً، مشابه لإستخدام المخطط المتداخل..

فإن include تتيح لك، إستخدام المخططات البيانيه، من وحدات المشاريع الأخرى، أو من مشاريع المكتبة، كما هو موضح في المثال التالي:

<!-- (root) nav_graph.xml -->
<?xml version="1.0" encoding="utf-8"?>
<navigation 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/nav_graph"
    app:startDestination="@id/fragment">

    <include app:graph="@navigation/included_graph" />

    <fragment
        android:id="@+id/fragment"
        android:name="com.example.myapplication.BlankFragment"
        android:label="Fragment in Root Graph"
        tools:layout="@layout/fragment_blank">
        <action
            android:id="@+id/action_fragment_to_second_graph"
            app:destination="@id/second_graph" />
    </fragment>

    ...
</navigation>

 

<!-- included_graph.xml -->
<?xml version="1.0" encoding="utf-8"?>
<navigation 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/second_graph"
    app:startDestination="@id/includedStart">

    <fragment
        android:id="@+id/includedStart"
        android:name="com.example.myapplication.IncludedStart"
        android:label="fragment_included_start"
        tools:layout="@layout/fragment_included_start" />
</navigation>

 

 


للإطلاع على المقال باللغة الإنجليزية أضغط هنا.

 

الإعلانات

اترك رد