close
تبلیغات در اینترنت
ساخت منوی کشویی اندروید

ساخت منوی کشویی اندروید

ساخت منوی کشویی اندروید
تعداد بازديد : 89

یک_ ایجاد منو کشویی در اندروید :

برای ساخت یک منو کشویی برای اکتیویتی خاصDrawerLayoutرو داخل لایه xml قرار داده و داخلش دو زیر لایه یکی برای صفحه اصلی و دیگری منو کشویی قرار می دیدن، راحتترین صورت داشتن یک فرگمنت برای نمایش صفحه اصلی و یک لیست ویو برای منو کشویی می باشد :

! فعلا برای اینکه سردرگم نشید هیچ چیز دیگه ای داخل لایه xml تون نباشه فقط و فقط کد زیر بعد از کامل شدن FrameLayout لایه بندی خودتون رو بزارید.

 

ادامه مطلب بروید

<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>
چند نکته  درباره لایه بندی بالا :
  • هر دو لایه اصلی و کشویی به عنوان بچه های DrawerLayout  بوده و به ترتیب :  لایه اصلی  ابتدا قرار می گیرد ( دراینجا ما FrameLayout) و لایه منو کشویی بعد از آن (در اینجا لیست ویو ).
  • ارتفاع و عرض لایه اصلی باید match_parent باشد چون باید تمام صفحه را هنگام مخفی بودن منو کشویی بگیرد.
  • منو کشویی (drawer view)  که در اینجا ListView می باشد حتما باید به صورت افقی (horizontal ) با صفتandroid:layout_gravity.
! صفت android:layout_gravity=”start” برای اندروید 4.2 به بالا موثر می باشد و بدین معنی است که اگر کاربر زبان راست به چپ (مثل فارسی زبانان )دارد منو از طرف راست باز شود. اگه میخواین الزاما از سمت چپ باز بشه مقدار روleftقرار بدید.
  • عرض drawer view با واحد dp  مشخص می شود و طول هم برار با طول کل صفحه است. عرض منو کشویی نباید از 320dp بیشتر باشد، بنابراین کاربر همیشه بخشی از صفحه اصلی را می تواند ببنید.
مقداری دهی اولیه drawer  list :
نکته : چون ما میخوایم برناممون داخل نسخه های قدیمی اندروید (2.2) هم کار کنه پس یکم کارمون سخت تره پس، ابتدا مثل گذشته کتابخونه appcompat_v7 رو به برنامتون اضافه کنید.
خوب برای نمایش یک لیست ویو در منو کشویی نیاز به یه آرایه داریم  (یا یه لیست از شی) پس داخل strings.xml یه آرایه از نوع  رشته رو تعریف می کنیم :
<string-array name="dokmeha"> <item>اسفندونه</item> <item>تنظیمات</item> <item>درباره ما</item> <item>خروج</item> </string-array>
حالا داخل اکتیویتیمون ضمن تعریف منو کشویی اون رو مقدار دهی کرده و آداپتر رو بهش نسبت می دیم. می گیم وقتی برروی آیتمی کلیک شد یک Toast نمایش بده :
package ir.esfandune.navigationdrawer; 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 MainActivity extends Activity { private String[] mPlanetTitles; private DrawerLayout mDrawerLayout; private ListView mDrawerList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_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(); } }); } }
تبریک میگم کارمون خلاصه، ما منو کشویی رو ساختیم الان میتونید اجرا کنید :
نویسنده :
تاریخ انتشار : یکشنبه 21 شهريور 1395 ساعت: 9:26
بخش نظرات این مطلب
نام
ایمیل (منتشر نمی‌شود) (لازم)
وبسایت
:):(;):D;)):X:?:P:*=((:O@};-:B/:):S
نظر خصوصی
مشخصات شما ذخیره شود ؟[حذف مشخصات] [شکلک ها]
کد امنیتی