رفتن به مطلب

تنظیم مکان قرارگیری کنترلها توسط پنل


مهران محمودی

ارسال‌های توصیه شده

با عرض سلام خدمت تمامی کاربران گرامی،

بعضی از دوستان در تنظیم مکان قرارگیری کنترل ها مشکل داشتن. (به خصوص پنل)

در پی حل این مشکل با مهدی داشتیم مشورت میکردیم که متوجه مشکلی در basic4android شدیم !

توضیحات رو میدم شاید پیچیده باشه:

وقتی که به دیزاینر خودتون پنل اضافه میکنید به راحتی با SetLeftAndRight و SetTopAndBottom میتونید مکانش رو تنظیم کنید !

مشکل از جایی شروع میشه که شما به پنل کنترل اضافه کنید !!! ما در اینجا یه listview اضافه میکنیم.

این موقع پنل بعنوان دربرگیرنده (parent) اون کنترل که لیست ویو هستش، محسوب میشه، درست ؟ پس باید با کدی مشابه به این:

 
listview1.SetLeftAndRight(5%x,95%x)
 

شما بتونید مکان قرارگیری لیست ویو رو در پنل تنظیم کنید ! یعنی به مقدار 5 درصد طول افقی صفحه از سمت چپ، و به همون مقدار از سمت راست پنل فاصله داشته باشه !

مشکل دقیقا همین هستش ! از سمت چپ به اندازه 5 درصد طول افقی صفحه از پنل فاصله پیدا میکنه ولی از سمت راست به اندازه 5 درصد از فعالیت (activity) فاصله پیدا میکنه !!!!!!! که این درست نیست و از هر دوطرف باید مقیاس پنل باشه.

برای حل این مشکل شما باید:

فاصله پنل از سمت راست فعالیت (Panel1.Right) - (فاصله ای که میخواید کنترل از پنل داشته باشه + فاصله پنل از فعالیت)

مثال از انجام همینکار:

 
Panel1.SetLeftAndRight(5%x,95%x)
 

پنل از سمت راست به اندازه 5 درصد فاصله داره چون گفتیم 95 درصد x، پس 5 درصد آزاد میمونه، درست؟ ادامه کار:

 
ListView1.SetLeftAndRight(5%x,Panel1.Right - 10%x)
 

با این کد لیست ویو از سمت چپ به اندازه 5 درصد اندازه افقی صفحه از پنل فاصله میگیره. اون 10 درصد x چطور به دست اومده؟ :

فاصله سمت راست پنل از فعالیت (5 درصد) + فاصله ای که میخوایم لیست ویو از سمت راست پنل داشته باشه (باز هم 5 درصد) = 10 درصد

میشه گفت این فرمول کلی رو:

 
ListView1.SetLeftAndRight(5%x,Panel1.Right - FASELE)
 

بجای FASELE باید محاسباتی که گفته شد رو انجام بدید !

دقیقا همین مشکل برای SetTopAndBottom نیز وجود داره ! یعنی از سمت بالا نسبت به پنل و از پایین نسبت به فعالیت فاصله پیدا میکنه. یعنی اگه پنل به این شکل باشه:


 

Panel1.SetLeftAndRight(5%x,95%x)

Panel1.SetTopAndBottom(10%y,90%y)
 

لیست ویو باید به این شکل باشه:

 

ListView1.SetLeftAndRight(5%x,Panel1.Right - 10%x)

ListView1.SetTopAndBottom(5%y,Panel1.Bottom - 25%y)
 

و بعنوان مثال اگه بخوایم یک دکمه به پایین لیست ویو بچسبه، کدهای اون به این شکل میشه:


 

Button1.SetLeftAndRight(5%x,Panel1.Right-10%x)

Button1.SetTopAndBottom(Panel1.Bottom-25%y,Panel1.Bottom-15%y)
 

میدونم گیج کننده هستش. ولی متاسفانه وجود داره این مشکل.

مطمئنا با آموزش تصویری بهتر متوجه خواهید شد.

آموزش تصویری به زودی در سایت قرار میگیره.

___

انجمن برنامه نویسان Basic4Android ایــــــران

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 ماه بعد...

راه حل دیگه هم می تونه این باشه که به جای این کد

listview1.SetLeftAndRight(5%x,95%x)

این کد رو بنویسیم


ListView1.Width = Panel1.Width - 10%x
ListView1.Left = 5%x

اینجور خود به خود از چپ راست تنظیم میشه و نیاز به محاسبه نیستش

البته ببخشید در پست آموزشی مطلب گذاشتم... فقط هدف نشون دادن راه دیگه هستش

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اینم یه نمونه کد که خودم از این روش استفاده می کنم تا آبجکت داخل پنل بچینم

تو این کد سه تا لیبل رو در عرض طوری قرار دادم که اندازه هاشون یکی باشه و فاصله از دیواره های چپ و راستشون و بالا و پایینشون هم به یک اندازه باشه


Panel1.SetLeftAndRight (3%x,96%x)
Panel1.SetTopAndBottom (5%y,95%y)

Label1.Height = Panel1.Height -2%x
Label1.Top = 1%x
Label1.Width = 30%x
Label1.Left = 1%x

Label2.Height = Panel1.Height -2%x
Label2.Top = 1%x
Label2.Width = 30%x
Label2.Left = Label1.Right + 1%x  'OR 32%x

Label3.Height = Panel1.Height -2%x
Label3.Top = 1%x
Label3.Width = 30%x
Label3.Left = Label2.Right + 1%x 'OR 63%x




لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 ماه بعد...

سلام

من یه پنل گذاشتم که تمام صفحه رو پوشش میده یعنی :

main_p.SetLeftAndRight(0,100%x)

main_p.SetTopAndBottom(0,100%y)

حالا اگه بخوام کنترل بذارم مختصات چطور بدم ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

من یه پنل گذاشتم که تمام صفحه رو پوشش میده یعنی :

main_p.SetLeftAndRight(0,100%x)

main_p.SetTopAndBottom(0,100%y)

حالا اگه بخوام کنترل بذارم مختصات چطور بدم ؟

درود.

پیشنهاد میکنم این آموزش تصویری که استاد خلیلی دادن رو دانلود کنید:

http://answercenter.ir/thread968.html

کاملا توضیح دادن همه چیز رو در مورد تنظیم کردن.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...