آموزش GridLayoutManager در برنامه نویسی اندروید

سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش GridLayoutManager در برنامه نویسی اندروید می پردازیم با استفاده از GridLayoutManager علاوه براینکه می توانیم آیتم ها را در حالت خاصی نمایش دهیم می توانیم زمانی که گوشی از حالت عادی یا Vertical یا portrait () به حالت Horizontal یا landscape رفت نحوه چیدمان آیتمان ها را نیر کنترل کنیم البته استفاده از GridLayoutManager به تنهایی امکان پذیر نیست یعنی باید از یک نوع واسط استفاده کنیم در اینجا واسط ما CardView و RecyclerView است در ادامه با ما همراه باشید.

 
در ابتدا شما باید وارد فایل Build.gradle شده از نوع module و در بخش dependencies خط های زیر را اضافه کنید.

پروژه خودتان را sync کنید علت خطا های گریدل را قبلا بررسی کردیم در سایت جستجو کنید.
ابتدا وارد activity_main.xml شده یا آن را ایجاد کنید و کد زیر را در آن قرار دهید.

دوستان در بالا ما از CoordinatorLayout استفاده کردیم برای آشنایی بیشتر با آن واژه “CoordinatorLayout” را در سایت جستجو کنید در قبل هم اشاره کردیم از این بعد بیشتر پروژه های ما CoordinatorLayout خواهند بود در بالا ما فقط یک RecyclerView قرار داده ایم.
حالا باید یک کلاس به نام DataModel.java ایجاد کنیم این کلاس ها به کلاس model معروف هستند.

سپس باید آداپتور خودمان را ایجاد کنیم نام آن را برابر با RecyclerViewAdapter.java قرار داده و کد زیر را در آن قرار دهید.

باید یک فایل xml ایجاد کنیم به نام recycler_view_item.xml این فایل شکل ظاهری آیتم ما را ایجاد می کند.

در بالا یک CardView داریم که در آن یک ImageView و یک TextView قرار گرفته است.
حالا باید یک کلاس به نام AutoFitGridLayoutManager.java ایجاد کنیم کار اصلی این کلاس تشخیص می دهد که گوشی در چه حالتی است و در صورتی که در حالت خاصی قرار گیرد اندازه هر CardView را تغییر می دهد اندازه آن را تغییر نمیدهد بلکه یکمی آن را به صورت کشیده نمایش میدهد تا چیدمان ما بهم نریزد.

در بالا اندازه کل صفحه به دست میاید سپس عرض ستون بر کل طول تقسیم شده و اندازه هر CardView به دست می آید البته در بالا اندازه RecyclerView تغییر می کند. اگر دقت کنید فاصله سمت چپ و راست نیز به دست آمده و سپس تقسیم می شود اگر دقت کنید یک شرط در بالا وجود دارد در صورتی که گوشی در حالت افقی بود طول گرفته و فاصله از چپ و راست از آن کم می شود و در صورتی که در حالت عمودی بود عرض گرفته شدن و از فاصله سمت چپ و راست کم می شود.
و در آخر کد مربوط به MainActivity.java هم همانند زیر می شود.

ابتدا داده های sample را وارد برنامه کردیم سپس آداپتور خود را set کریدم و در بالا برای اینکه دوتای (دو ستونه) نمایش داده شوند از عدد 2 استفاده شده است.
در ادامه می توانید پیش نمایشی از ماحصل کار را ببینید.
به علت بالا بودن حجم فایل gif از لینک زیر استفاده کنید.
لینک
 
این آموزش هم به پایان رسید.
 
موفق و موید باشید.
 

مطالعه بیشتر