یادتان باشد LinearLayout نمیگذاشت که دوتا ابزار توی یک ردیف باشند (برای نوع vertical) و همچنین نمیگذاشت که دوتا ابزار زیر هم باشند (برای نوع horizontal)
پس باید از Relative استفاده کنیم. خب پس تگ layout اصلی تان را بکنید Relative. یعنی الان اینطور هست:
پس باید از Relative استفاده کنیم. خب پس تگ layout اصلی تان را بکنید Relative. یعنی الان اینطور هست:
که البته می¬بینید که از linear که خارجش کردم صفت orientation را هم برداشتم چون برای linear بود.
حال برای دیزاین صفحه فعلا یک دکمه بندازید روی صفحه (ترجیحا با کد. یاد بگیرید حرفه ای کار کنید از اول)
اینطور:
حال برای دیزاین صفحه فعلا یک دکمه بندازید روی صفحه (ترجیحا با کد. یاد بگیرید حرفه ای کار کنید از اول)
اینطور:
<Button android:layout_width="170dp"
android:layout_height="170dp"/>
android:layout_height="170dp"/>
یک نکته بگم یادتان باشد گفته بودم برای واحد اندازه گیری هم dp کاربرد دارد هم px
px
Pixels - corresponds to actual pixels on the screen.
dp
Density-independent Pixels
Pixels - corresponds to actual pixels on the screen.
dp
Density-independent Pixels
ببینید پیکسل های انواع صفحه¬های مانیتور و تلوزیون یا گوشی برای مدل های مختلف... باهم فرق دارد. اگر بر اساس پیکسل بدید واحد را در گوشی¬های متفاوت دیزاین¬های متفاوتی خواهید داشت. اما dp یک واحد ثابت هست در نتیجه تغییر نمیکند ابزارتان در گوشی¬ های متفاوت. پس از dp استفاده کنید بهتر هست.
خب تا الان دارم:
خب تا الان دارم:
<Button android:layout_width="170dp"
android:layout_height="170dp"/>
<Button android:layout_width="170dp"
android:layout_height="170dp"/>
android:layout_height="170dp"/>
<Button android:layout_width="170dp"
android:layout_height="170dp"/>
خب میبینید که هیچی نخواهد شد! برای اینکه دکمه ها را روی هم انداخت. کلا RelativeLayout هیچ قیدی روی این مسائل ندارد که ابزاراتان تداخل داشته باشند باهم! که البته خیلی هم خوب هست این. برای اینکه دکمه دومتا ظاهر بشود کدش را اینطوری کنید:
خب واضح هست و توضیحاتش را دادم. به اولی یک id دادم (اسمی که انتخاب کردم با توجه به کاربردی هست که در ادامه میخواهیم از این دکمه) بعد در دکمه دومی طبق خواصی که یاد دادم گفتم که زیر چه چیز باشد دکمم.
حالا بیاید دوتا دکمه بعدی را بسازیم. کافی هست به هرکدام از اینها بگیم که سمت راست کدام دکمه باشند. ببینید:
حالا بیاید دوتا دکمه بعدی را بسازیم. کافی هست به هرکدام از اینها بگیم که سمت راست کدام دکمه باشند. ببینید:
حالا برای اینکه بیاد وسط کافی هست که بیام و یکم به دوتای سمت چپ margin بدهم از چپ و بعد به دوتا بالایی ها margin بدهم از بالا. (مارجین برای فاصله دادن از اطراف بود اگر یادتان باشد)
کد من بصورت زیر شد:
کد من بصورت زیر شد:
خب تبریک میگم به غیر اصولی ترین روش ممکن دیزاین کردیم!! 😑چرا؟ برای اینکه همانطور که یادت دادم برید و مدل گوشی که نمایش میدهد را عوض کنید ببینید چه بلایی سر کارتون میاد!
میبینید که در بدترین وضعیت ممکن هست! نه تنها دکمه ها نسبت به صفحه ریز دیده میشوند (که توی تبلت صد درصد بدتر هست میتوانید تست کنید) بلکه اصلا وسط هم نیستند!
خب اگر اینطور نمیشد جای تعجب بود! ماها یک سری عددو ارقام دادیم! دلیل نمیشود اگر من 20 تا از چپ مارجین دادم توی گوشی 4 اینچی که دارم، شما هم که گوشی تان 7 اینچی هستت وسط قرار بگیرد دکمه ها!!
یادتان باشه جلسه اول یه اصطلاحی گفتم به اسم Responsive Design.
خب این توی وب مطرح میشود. اما برای هر اپلیکیشن دیگه ای هم میشه بکار برد. یعنی طراحی ای کنید که در هر سایز گوشی درست باشد دیزاینتان. اما چطور؟ کار سختی نیست. البته حالا به اینکه سایز دکمه ها نسبت به صفحه بزرگ یا کوچیک شود کاری نداشته باشید در آینده میپردازیم. بیاید اول فکر کنیم که چکار کنیم وسط بیفتد دکمه مان. خب من دوتا راه به شما میگم. میخواهم روی این دو بحث کنیم.
خب اگر اینطور نمیشد جای تعجب بود! ماها یک سری عددو ارقام دادیم! دلیل نمیشود اگر من 20 تا از چپ مارجین دادم توی گوشی 4 اینچی که دارم، شما هم که گوشی تان 7 اینچی هستت وسط قرار بگیرد دکمه ها!!
یادتان باشه جلسه اول یه اصطلاحی گفتم به اسم Responsive Design.
خب این توی وب مطرح میشود. اما برای هر اپلیکیشن دیگه ای هم میشه بکار برد. یعنی طراحی ای کنید که در هر سایز گوشی درست باشد دیزاینتان. اما چطور؟ کار سختی نیست. البته حالا به اینکه سایز دکمه ها نسبت به صفحه بزرگ یا کوچیک شود کاری نداشته باشید در آینده میپردازیم. بیاید اول فکر کنیم که چکار کنیم وسط بیفتد دکمه مان. خب من دوتا راه به شما میگم. میخواهم روی این دو بحث کنیم.
دوستان ما میتونیم در یک layout یک layout دیگر بگذاریم! یعنی چی. شما میتوانید هر layout را به layout های بیشتر تقسیم کنید. مثلا من یک relative دارم میتونم داخل آن n تا linear داشته باشم و...
حالا چکار کنیم. کافی هست این چهار دکمه را در یک relativelayout دیگر بندازیم بعد آن را بندازیم وسط صفحه.
اینطوری:
اینطوری: