آموزش برنامه نویسی اندروید با B4A – قسمت نهم(افزودن آیتم به منو)
سلام
در قسمت قبلی آموزش یاد گرفتیم که چطوری میتونیم یک اسلاید منو(منوی کناری یا مخفی) به برنامه اضافه کنیم ، حالا در این قسمت یاد میگریم که چه طوری میتونیم به این منو آیتم اضافه کنیم و ازش استفاده کنیم ، آموزش را بر اساس سورس قبلی پیش می بریم.
مشکل عدم شناسایی فایل SlidingMenu.jar برطرف شد
آموزش:
برنامه ای که در جلسه ی قبل نوشتیم را باز کنید .
- برای اضافه کردن ایتم به منو میتونیم از ListView استفاه کنیم ، پس یک متغیر از لیست ویو ایجاد و به برنامه تعریف می کنیم (initialize) می کنیم .
- در Activity_Create کد زیر را اضافه می کنیم :
Dim lv As ListView
lv.Initialize("lv")
در خط 1 لیست ویو تعریف کردیم و در خط 2 ، initialize کردیم.
- در ادامه کدهای زیر را اضافه کنید :
lv.TwoLinesAndBitmap.Label.Gravity = Gravity.CENTER
lv.TwoLinesAndBitmap.Label.TextColor = Colors.White
lv.TwoLinesAndBitmap.Label.Left = 0
lv.TwoLinesAndBitmap.Label.Top = 2%x
lv.AddTwoLinesAndBitmap2("item1" , "" , LoadBitmap(File.DirAssets , "ic_action_copy.png") , "sgdesigner")
lv.AddTwoLinesAndBitmap2("item2" , "" , LoadBitmap(File.DirAssets , "ic_action_overflow.png") , "item2")
sm.Menu.AddView(lv , 0 , 0 , 70%x , 100%y)
توضیحات :
- خط 1 : گفتیم متن های لیست ویو وسط چین باشه(به جای center میتونید از right , left نیز استفاده کنید) .
- خط 2 : در این خط گفتیم که رنگ متنمون سفید باشه (به جای white میتونید رنگ دلخواهتون رو بنویسید) .
- خط 3 : در این خط گفتیم که متن هامون از سمت چپ هیچ فاصله ای نگیره(میتونید به عدد صفر مقدار بدید) .
- خط 4 : در این خط هم گفتیم که از سمت بالا 2 درصد فاصله بگیره .
در دو خط 6 و 7 آیتم هامون رو به همراه عکس اضافه کنیم .
- خط 6 و 7 : دو تا آیتم اضافه کردیم و برای هر آیتم یک آکن تعریف کردیم ، آیکن هایی که میخوایم به لیست ویو اضافه کنیم باید در پوشه Files موجود در محل ذخیره پروژه کپی کنیم و اسمش رو به جای ic_action_copy.png و یا ic_action_overflow.png قرار بدید ، در آخر هم نیز مشاهده می کنید که برای هر ایتم یک اسم تعریف کردیم (منظورم item1 و item 2) .
- خط 9 : در خط 9 لیست ویو را به منو نسب دادیم (sm که یادتون باشه مال اسلاید منو بود که تعریف کردیم Dim sm As SlingMenu و lv رو هم که در همین جلسه تعریف کنیم Dim lv As ListView) ، در این خط نیز باید لیست ویو را تراز بندی کنیم (عدد ها را تغییر بدید تا خودتون بیشتر متوجه بشید ، چون تعریفی براش ندارم!)
و منویی که طراحی کردیم میشه این :
دو آیکنی که در منو گذاشتم :
و در آخر تمام کدها :
#Region Project Attributes
#ApplicationLabel: Sliding_menu
#VersionCode: 1
#VersionName: 1.0.0
'SupportedOrientations possible values: unspecified, landscape or portrait.
'Developed By : beporsam.ir | beporsam@gmail.com | Telegram : @beporsam
#SupportedOrientations: unspecified
#CanInstallToExternalStorage: False
#End Region
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: True
#End Region
Sub Process_Globals
End Sub
Sub Globals
Dim sm As SlidingMenu
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Lmain")
sm.Initialize("sm")
sm.BehindOffset = 30%x
sm.Mode = sm.RIGHT
sm.Menu.Color = Colors.RGB(23,149,197)
' برای اضافه کردن آیتم
Dim lv As ListView
lv.Initialize("lv")
lv.TwoLinesAndBitmap.Label.Gravity = Gravity.CENTER
lv.TwoLinesAndBitmap.Label.TextColor = Colors.White
lv.TwoLinesAndBitmap.Label.Left = 0
lv.TwoLinesAndBitmap.Label.Top = 2%x
lv.AddTwoLinesAndBitmap2("بپرسم" , "" , LoadBitmap(File.DirAssets , "ic_action_copy.png") , "item1")
lv.AddTwoLinesAndBitmap2("اس جی دیزاینر" , "" , LoadBitmap(File.DirAssets , "ic_action_overflow.png") , "item2")
sm.Menu.AddView(lv , 0 , 0 , 70%x , 100%y)
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub Activity_KeyPress (KeyCode As Int) As Boolean 'Return True to consume the event
If KeyCode = KeyCodes.KEYCODE_MENU Then
If sm.Visible = False Then
sm.ShowMenu
Else
sm.HideMenus
End If
End If
End Sub
با ما باشید تا آموزش های بعدی …
هرگونه سوالی یا مشکلی در رابطه با مطلب فوق داشتید؛ در سایت بپرسید، پاسخگوی سوالات شما هستیم، برای پرسیدن سوال کلیک کنید.
موفق باشید.


دیدگاه ( 4 )
سلام
با ظاهر شدن منو رنگ بکگراند تیره نمیشه. چه جوری میشه تیره تر کردش
ممنون
سلام
یه سوال دیگه داشتم میخواستم بدونم که چطوری میشه بیشتر از دو آیتم به منو کشویی اضافه کنیم
مثلا3تا
یا..
در همون سوالی که پرسیدید، کامنت بزارید
موفق باشید
سلام من تمام کار رو انجام دادم خوب کار هم میکنه
ولی میخواستم بدونم چطور میشه رویداد کلیک یا همچین چیزی به لیبلمون بدیم
راستی میخواستم یک امیج ویو هم بیارم ای نو هم میشه راهنمایی کنید
سلام
در لینک زیر پاسختون رو دادم
موفق باشید.
سلام.درقسمت ایجادمنو b4aوقتی کامپایل میکنم ارور میده ک فایل کتابخانه اسلایدینگ منو وجودنداره بااینکه کتابخونشو قرار دادم
سلام
مطمئن هستید کتابخونه رو به پروژه اضافه کردید؟
یک اسکرین شات از خطایی که میده بفرستید.