رفتن به مطلب

محمد معین عبدی

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

سلام دوستان امروز با ی آموزش توپ اومدم ...

خب دوستان این چند وقت اندروید استدیو تغییرات زیادی کرده از جمله اضافه شدن زبان کاتلین و لایه ای جدید به اسم constraintlayout خب بذارید به اولین مشکلی که با این لایه برخوردم براتون بگم که اونم ریسپانسیو نبودنشه البته نمیدونم شایدم باشه من نمیدونم :دی ولی خب من مشکلمو با لایه flexbox حل کردم که خیلی کار باهاش راحت و لذت بخشه برای استفاده اول قندشکن رو روشن کنید و خط زیر رو به گریدل اضافه کنید :

compile 'com.google.android:flexbox:0.2.5'

بعد از سینک کردن پروژه به قسمت لایه های خودتون برید و به جای استفاده از constraint از flexbox استفاده کنید به صورت زیر : 

com.google.android.flexbox.FlexboxLayout

بعد از اون این ویژگی ها رو هم به لایه اضافه کنید : 

	app:alignItems="center"
    app:flexWrap="wrap"
    app:justifyContent="space_around"

حالا در پوشه values یک فایل ایکس ام ال به نام fractions درست کنید و با مقدار و ایتم های دلخواه مثل نمونه زیر :

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item name="ww" type="fraction">33%</item>
    <item name="ww1" type="fraction">90%</item>
    <item name="ww2" type="fraction">45%</item>
    <item name="lst" type="fraction">100%</item>
</resources>

و هر ایتم مشخص میکنه که هر شی در لایه چقدر فضا رو در جهت طول در رزولیشن های مختلف اشغال کنه...

و در آخر برای هر شی که میسازید در لایه مقدار فضای اشغال کننده رو تعیین کنید مثل نمونه زیر :

app:layout_flexBasisPercent="@fraction/ww1">

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

 

موفق باشید ببخشید اگه غلط املایی توش پیدا کردید :دی

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

سلام

 

روش خوبیه ولی خب کاری که من خودم انجام میدم اینه که

 

میام برای هر لایه چند حالت طراحی normal , large , x-large انجام میدم

 

اینطوری بسته به سایز گوشی یک کدوم از لایه ها لود میشه 

 

این مزیتش نسبت به این روش که به درصد اندازه داده میشه اینه که :

در این روش مثلا میاییم میگیم ، باتن 40 درصد صفحه رو بگیره ، خب ممکنه در یک گوشی 5 اینچی این 40 درصد خیلی بزرگ نباشه و خیلی مناسب باشه سایزش

ولی وقتی بیایین برنامه در یک تبلت مثلا 10 اینچی اجرا بشه ، قطعا این 40 درصد در این تبلت نسبت به 40 درصد گوشی 5 اینچی خییلی بیشتره

و دکمه کشیده میشه تا اون 40 درصد فضا رو پر کنه و این ظاهر خوبی به برنامه نمیده

 

ولی در روشی که گفتم اول ، ریش و قیچی دست خودته مثلا میتونی برای تبلت های 10 اینچی یک جوری باتن رو تعریف کنی کنی که هم نسبت به این سایز اندازه معقول و دلخواهی داشته باشه و هم مناسب

و دیگه نیاز نباشه باتن اجبارا 40 درصد صفحه رو پر کنه

 

 

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

آره منم ازین روش استفاده میکردم ولی این روش هم بی ایراد نیست چون سایزای گوشی های اندروید هرکی واس خودش میزنه یکی ۴.۷ یکی ۵ یکی ۵.۲ کاشکی مثل دستگاه های اپل ی استاندارد تعریف میکردن که سایز مثلا گوشی های هوشمند فقط ۵.۲ اینچ اینطوری هم کار ما راحت میشه

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

سلام

 

کی گفته لایه constraintlayout  ریسپانسیو  نیست ؟

من  با این لایه  یک  laouyt  میسازم  روی همه گوشی ها با همون سایز نشون داده میشه  تست هم کردم  شما باید روش کار با این لایه رو کامل مطالعه  کنید بعد متوجه  میشید در برنامه نویسی swift  هم این لایه  کارش همین هستش در اصل  اندروید اومده از swift  الهام گرفته  این لایه رو توصیه میکنم بیشتر در مورد این لایه مطالعه کنید اگر  ریسپانسیو نبود  موقغعه ایجاد اکتیویتی  اندروید استودیو پیش فرضش نمیکرد :53:

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

در 19 دقیقه قبل، محمد معین عبدی گفته است :

آره منم ازین روش استفاده میکردم ولی این روش هم بی ایراد نیست چون سایزای گوشی های اندروید هرکی واس خودش میزنه یکی ۴.۷ یکی ۵ یکی ۵.۲ کاشکی مثل دستگاه های اپل ی استاندارد تعریف میکردن که سایز مثلا گوشی های هوشمند فقط ۵.۲ اینچ اینطوری هم کار ما راحت میشه

من که تا حالا ایرادی ندیدم ، هر چی طراحی کردم با این روش در همه گوشی ها ریسپانسیو بوده

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

بایگانی شده

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

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

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