ساخت Sliding Menu (یا Navigation Drawer)، با استفاده از کتابخانه ActionBarSherlock (قابل استفاده برای برخی api های پایین)
قبلا در آموزش شماره 846 ، Sliding Menu را معرفی کردیم و یک پروژه اندروید را برای آن ارائه کردیم. در این مبحث نیز قصد داریم پروژه اندروید دیگری را معرفی کنیم که می تواند در برخی api های پایین نیز به درستی عمل کند.
این پروژه اندروید، از کتابخانه ActionBarSherlock استفاده می کند. فایل پروژه را می توانید از لینک زیر دریافت نمایید :
دقت کنید که دو پروژه اندروید در فایل zip شده قرار دارد که باید یکی را به صورت کتابخانه (library) به کار ببرید ( آموزش شماره 847 ).


اما بهتر است که کمی در مورد شیوه استفاده از کدهای آن توضیح بدهیم.
شما باید ابتدا کتابخانه ActionBarSherlock را برای پروژه اندروید خود به عنوان library معرفی کنید ( آموزش شماره 847 ).
اکنون برای شرح کدهایی که باید به کار روی، کدهای خود پروژه بالا را ذکر می کنیم. کدهای Activity (یا در واقع SherlockFragmentActivity) :
همان طور که تذکر داده شد، اولین نکته این است که کلاس (Class) را باید برابر SherlockFragmentActivity انتخاب کنیم (نه Activity) :
یکی از مشکلاتی که بعد از تغییر کلاس از Activity به SherlockFragmentActivity پیش می آید، این است که قبلا package های مربوط یه Menu عادی import شده اند (و بنابراین برنامه eclipse خطاهایی را نمایش می دهد)، اما ما باید موارد مربوط به SherlockFragmentActivity را import کنیم. بنابراین باید سه package زیر را داشته باشیم :
بنابراین package های مشابه با موارد بالا (آنها که برای Activity هستند) را حذف کرده و سپس موارد بالا را به صورت دستی بنویسید و در آخر نیز می توانید کلیدهای Ctrl و Shift و O (بخوانید او) را بزنید تا سایر package ها نیز import شوند.
کد زیر تعیین کرده است که بعد از اشاره بر روی هر یک از گزینه های Sliding Menu (یا در واقع اشاره بر روی item های ListView ای که در آن به کار رفته)، چه کدی اجرا شود :
در فایل drawer_list_item.xml ، ساختار گرافیکی مربوط به item های ListView به کار رفته در Sliding Menu ، تعریف شده است (تنها یک TextView ساده) :
فایل activity_main.xml ، فایل گرافیکی متناظر با Activity (یا در واقع همان SherlockFragmentActivity) می باشد :
بنابراین، لایه گرافیکی متناظر با هر SherlockFragmentActivity دلخواه، باید ساختاری مشابه ساختار زیر داشته باشد (من نیز توضیحاتی را به آن اضافه کرده ام تا بعدا بتوانیم بخش های مربوط به Sliding Menu را تشخیص بدهیم) :


سلام.ممنونم از سایت خوبتون.من میخواستم تو این برنامه Navigation Drawer با زدن مثلا دکمه ی Earth به جای اینکه عکس باز شه بره یه صفحه ی دیگه.یه کلاس دیگه بره.میدونم intent و.ولی نمیدونم کجای برنامه رو تغییر بدم.ممنون میشم راهنمایی کنید