به نام خدا
در این جلسه قصد داریم مطالبی که دانشجویان عزیز درخواست داشته اند را آموزش دهیم تا دوره آموزشی را تکمیل تر از گذشته کنیم.
مطالب مطرح شده در این جلسه:
- آموزش ساخت لیست بی پایان با استفاده از کتابخانه InfiniteScrollProvider
- آموزش ساخت اسلایدر با استفاده از کتابخانه BannerSlider
- آموزش ساخت BottomNavigation با استفاده از Bottom navigation
لینک کتابخانه ها در گیت هاب: https://github.com/saeedsh92
نکته ی بسیار مهم: برای استفاده از کتابخانه های معرفی شده در این جلسه حتماً باید آخرین نسخه های SupportLibrary, BuildTools, SdkTools را از Sdk manager دانلود نمایید.
برای اضافه کردن کتابخانه ها لازم است تکه کد زیر را به Build.gradle ماژول app، داخل بلاک repositories اضافه نمایید:
maven { url "https://dl.bintray.com/saeedshahiniit/material-views" }
مثال:
repositories{ jcenter() maven { url "https://dl.bintray.com/saeedshahiniit/material-views" } }
برای اضافه کردن کتابخانه ها، کدهای زیر را داخل بلاک dependencies اضافه نمایید:
آدرس دانلود کتابخانه BannerSlider
compile 'com.ss.bannerslider:bannerslider:1.2'
آدرس دانلود کتابخانه InfiniteScrollProvider
compile 'ss.com.infinitescrollprovider:infinitescrollprovider:1.1'
آدرس دانلود کتابخانه BottomNavigation
compile 'com.ss.bottomnavigation:bottomnavigation:1.4.2'
این مطلب یک جلسه از آموزش برنامه نویسی اندروید می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.
سلام استاد عزیز بنده سوالی از خدمتتان داشتم . عذرخواهی می کنم سوالاتم مربوط به این قسمت از اموزش زیاد شدند.
استاد شما در هنگام اضافه کردن BottomNavigation به لی اوت به ان ارتفاع 56dp دادید .سوال بنده این است که ایا ارتفاع دادن به این صورت یعنی عددی موجب نمی شود که در گوشی هایی با سایز های صفحه ی مختلف و یا رزولوشن های مختلف با مشکل برخورد کنیم ؟ بنده تا الان سعی می کردم با توجه به ان چه اموخته بودم تا جایی که امکان داشت از ویژگی هایی مانند weight برای اندازه استفاده کنم که ان هم دردسر های خودش را دارد و دیلیلی که باعث می شد با عدد اندازه ندهم را بالا برای تان گفتم ممنون می شوم در این خصوص راهنمایی بفرمایید به طور مثال بنده در اکتیویتی ام یک bottom navigation دارم در پایین صفحه و می خواهم که باقی صفحه را به یک فرگمنت اختصاص دهم بهترین حالت برای این کار به چه صورت است؟ ممنون موفق باشید.
سایز 56dp استاندارد متریال دیزاین هست و روی هیچ گوشی اندرویدی مشکل ایجاد نمی کنه! وقتی شما از واحد 56dp استفاده می کنید دیگه تفاوتی در صفحه نمایش های مختلف وجود نداره و همه جا به یک اندازه نمایش داده می شه.
سلام استاد عزیز خسته نباشید بنده یک سوال در مورد کتابخانه bottom navigation برام پیش امده. در جلسات قبل تر ما اموزش view pager و table layout را داشتیم که یک قابلیت که خیلی مشابه bottom navigation بود در بالای صفحه امان اضافه کنیم که البته می توانستیم ان را پایین هم قرار بدهیم .سوال بنده این است که با توجه به پیچیدگی پیاده سازی table layout و view pager در مقایسه با bottom navigation شما کدام را پیشنهاد می کنید و این که ممنون می شم در مورد تفاوت های انها توضیح بفرمایید. موفق باشید.
سلام، وقت بخیر
ViewPagerبا BottomNavigation هیچ شباهتی به ندارن! هر کدوم یه کار متفاوت رو انجام می دن. ViewPager وظیفش ساختن، لود کردن و تغییر نحوه ی نمایش فرگمنت هاست. ولی BottomNavigation کاملا یک استاندارده رابط کاربری هستش و جز چند تا دکمه چیز خاصی نداره.
سلام
من وقتی کتابخانه InfiniteScrollProvider رو اضافه می کنم تمام کارهایی که در آموزش رو گفتید رو انجام دادم. ولی با خطای زیر مواجه می شم:
Error:Execution failed for task ‘:app:processDebugManifest’.
> Manifest merger failed with multiple errors, see logs
سلام اررور رو کامل برام بفرستید. چیزی که فرستادید کامل نیست. اما فکر می کنم مشکل از تداخل minSdk من و شما باشه.
سلام وقتتون بخیر
من یه مشکلی دارم
مثلا ده تا صفحه توی سرور دارم و وقتی به انتهای صفحه دهم میرسم InfiniteScrollProvider توقف نمیکنه
چیکار کنم که من به InfiniteScrollProvider بگم من ده تا صفحه دارم و وقتی به صفحه دهم رسیدی دیگه InfiniteScrollProvider اجرا نشه؟
سلام، خودش وقتی به آخر لیست برسه و هیچ اطلاعاتی دریافت نکنه، دیگه متد onLoadMore صدا زده نمی شه. شما نیاز به کنترل این وضعیت ندارید.
استاد من هنوز درگیر InfiniteScroll هستم !!
من اطلاعات پست رو از سمت سرور میگیرم و طبق آموزشی که داده بودین ، این اطلاعات رو داخل جدول ذخیره میکنم .( برای زمانی که کاربر نت نداره بتونه آفلاین بخونه)
الان بدجور گیر کردم . هر چقدر هم گشتم چیزی پیدا نکردم کارمو راه بندازه.
من الان باید اگر کاربر به اینترنت وصل بود 10 تا 10 بیاد از سرور بخونه و نمایش بده و اگر وصل نبود 10 تا 10 تا از دیتابیس بخونه. واقعا خیلی سخت شده الان .
اگر میشه یک راهنمایی کنید که بدرد من بخوره.
هم تو ارسال page به سرور مشکل دارم . هم زمانی که باید تشخیص بده از سرور کم کم بخونه یا دیتابیس
ممنون
سلام وقتی اینترنت قطعه لازم نیست که تمام پستها در دسترس باشند، شما باید مثلا فقط ۲۰ پست آخر رو داخل دیتابیس ذخیره کنی، مثل اینستاگرام( اینستاگرام رو به عنوان مثال مشاهده کنید) و دیگه نیازی به pagination ندارید.
سلام
اموزش پرداخت درون برنامه کافه بازار رو کی قرار میدین؟
سلام احتمالا 2 تا 3 هفته دیگه برگزار شه
امیدورام کامل باشه چون اصلا آموزش درست و حرفه ای داخل نت پیدا نمیشه و هر کسی یک توضیح ساده صرفا داده.
باور کنید این دوره خوبیش به همین آموزش های درخواستیش هست ، بقیه آموزش ها رو ادم میتونه کم و بیش از جاهای دیگه هم گیر بیاره ولی خوب جاهای دیگه آموزش درخواستی نمیگن
تشکر از شما
آقای رضایی این حرف شما از اون حرفاست که آدم اگه نخواد هم باید به افق خیره بشه شما دنبال کیفیت هستین یا کمیت ؟
سلام، متاسفانه همچین موضوع نیاز به پیاده سازی سمت سرور داره و امکانش نیست
استاد نمونه کدی از ارسال درخواست به سرور به همراه هدر رو می شه بزارید. ❗
متاسفانه پیاده سازی همچین کاری نیاز به زمان داره، چون باید سمت سرورش رو هم طراحی کنم که داخل یک جلسه امکان پذیر نیست.
منظورتون از کارد چیه؟ page رو از سرور نمی گیرید، page رو به سرور می فرستید تا پست های مربوط به اون پیج دریافت بشوند.