ایجاد Navigation Menu در اندروید

چهارشنبه 11 آذر 1394

در این مقاله قصد داریم در مورد Navigation Menu ها صحبت نماییم ، منو هایی که در هر صفحه ای شما می توانید به آن دسترسی نمایید و با کشیدن از سمت چپ به راست یا بالعکس به منو ها دسترسی پیدا کنید.

ایجاد Navigation Menu در اندروید

شاید تا به حال در نرم افزار های کاربردی مثل تلگرام، فیس بوک و یوتیوب دیده باشید که با کشیدن روی صفحه یک منوی کشویی ظاهر خواهد شد.

در این مقاله می خواهیم یه نمونه از آن را درست نماییم.

ابتدا یک پروژه ی جدید ایجاد نمایید داخل activity رفته و کدهای زیر را قرار دهید:

<android.support.v4.widget.DrawerLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    <!-- The main content view -->
    <FrameLayout
            android:id="@+id/content_frame"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    <!-- The navigation drawer -->
    <ListView android:id="@+id/left_drawer"
              android:layout_width="240dp"
              android:layout_height="match_parent"
              android:layout_gravity="start"
              android:choiceMode="singleChoice"
              android:divider="@android:color/transparent"
              android:dividerHeight="0dp"
              android:background="#111"/>
</android.support.v4.widget.DrawerLayout>

داخل xml از یک framelayout و یک listview استفاده کرده ایم، که داخل آن از یک listview برای نمایش لیستی که قرار است نمایش دهیم استفاده می شود.

هر دو لایه ی اصلی و کشویی بچه های این لایه هستند، که با استفاده از layout_gravity با این مشخصه

شما می توانید حرکت منو را برای خود مشخص نمایید.

اگر بخواهید از سمت چپ شروع شود باید حتما left را در gravity آن بزارید.

حتما باید کتابخانه ی appcompat_v7 را به پروژه ی خود اضافه نمایید.

می توانید برای افزودن کتابخانه به مقاله ایجاد نمودار با استفاده از کتابخانه ی AChartEngine در اندروید رجوع نمایید.

داخل پوشه ی value یک فایل xml قرار دارد که باید کد های زیر را داخل آن قرار دهید:

  <string-array name="dokmeha">
        <item>مقاله ها</item>
        <item>دوره ها</item>
        <item>درباره ما</item>
        <item>خروج</item>
    </string-array>

حالا داخل کلاس MyActivity باید کد های زیر را قرار دهید :

package com.barnamenevisan.Menu;

import android.app.Activity;
import android.os.Bundle;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MyActivity extends Activity {
    private String[] mPlanetTitles;
    private DrawerLayout mDrawerLayout;
    private ListView mDrawerList;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mPlanetTitles = getResources().getStringArray(R.array.dokmeha);
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerList = (ListView) findViewById(R.id.left_drawer);
        // Set the adapter for the list view
        mDrawerList.setAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, mPlanetTitles));
        // Set the list's click listener
        mDrawerList.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1,
                                    int post, long arg3) {
                String dokme_txt = getResources().getStringArray(R.array.dokmeha)[post];
                Toast.makeText(getBaseContext(),"برروی "+dokme_txt+" کلیک شد", Toast.LENGTH_SHORT).show();

            }

        });





    }
}

با استفاده از این کتابخانه، شما یک listview تعریف می نمایید که این لیست ها با استفاده از arrayadapter خوانده می شود، و علاوه بر آن یک DrawerLayout تعریف نمایید، که با تعریف کردن هر کدام از listview ها و انتخاب هر کدام از آیتم ها یک پیغام toast نمایش دهد.

خروجی به صورت زیر خواهد بود:

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید