
به نام خدا، دوستان سلام. توی این جلسه به معرفی viewpager و tablayout می پردازیم.برای پیاده سازی viewpager دوباره با recyclerview و fragment ها کار خواهیم کرد تا هم اینکه مروری بشه، همین که بیشتر کاربردشون رو درک بکنید.
مطالب مطرح شده در این جلسه عبارتند از :
- ViewPager چیست؟
- FragmentPagerAdapter چیست؟
- FragmentStatePagerAdapter چیست؟
- ایجاد Adapter برای ViewPager
- متصل کردن Adapter به ViewPager
- TabLayout چیست؟
- متصل نمودن Tablayout به ViewPager
- نمایش متن در Tablayout
:: توجه
این مطلب یک جلسه از آموزش برنامه نویسی اندروید می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.
سلام استاد خسته نباشید من تو ویدیوی شماره دوازده تون گیر کردم و چند بار سعی کردم و پروژه رو از نو نوشتم ولی بازم این ارور رو میده لطفا بگین چیکار کنم؟؟؟
Process: com.example.tamrin1, PID: 10366
java.lang.NullPointerException: Attempt to invoke virtual method ‘void androidx.recyclerview.widget.RecyclerView.setLayoutManager(androidx.recyclerview.widget.RecyclerView$LayoutManager)’ on a null object reference
at com.example.tamrin1.ClothFFragment.onCreateView(ClothFFragment.java:25)
این قطعه کدی که میگه مشکل داره
سلام خسته نباشید من در آخر اموزش
اخرین بخش کد نویسی متد getSupportFragmentManager رو ندارم
لطفا راهنمایی کنید ممنون
سلام. دو تا سوال داشتم
1. وقتی TabLayout رو در اکتیویتی میگیرم پروژه ران نمیشه و میگه متاسفانه متوقف شد. توی بخش Android Monitor اروری نمیبینم که بشه برا شما بفرستم. چه چیزی بفرستم که بشه اشکال رو ازش متوجه شد؟
2. پروژه این جلسه رو وقتی با اندروید استدیو خودم (ورژن 2.3.3) باز میکنم فایل های پروژه رو نمیشناسه و نوار زرد رنگی بالای صفحه میاد و مینویسه Project SDK is not defined. کنارش هم نوشته setup SDK و وقتی روش میزنم میگه SDK رو انتخاب کن و بعدش هم هیچ اتفاقی نمیوفته. مشکل رو چطور باید برطرف کنم؟
تشکر
سلام،
پاسخ 1: داخل تب Logcat (پایین اندروید استودیو) می تونید نوشته هایی رو ببینید که متن ارور ها داخلش با رنگ قرمز نمایش داده می شن.
پاسخ 2: باید روی لینک setup sdk کلیک کنید و مسیر پوشه sdk خودتون رو بهش بدید
اروری که برا سوال اول میده نمایش داده شد. ارور این هست:
سلام من وقتی میخام پروژمو تست کنم این پیام برا میاد باید چیکار کنم؟؟؟
Error:Execution failed for task ‘:app:processDebugManifest’.
> Manifest merger failed : Attribute meta-data#[email protected] value=(25.3.1) from [com.android.support:appcompat-v7:25.3.1] AndroidManifest.xml:27:9-31
is also present at [com.android.support:recyclerview-v7:26.0.0-alpha1] AndroidManifest.xml:24:9-38 value=(26.0.0-alpha1).
Suggestion: add ‘tools:replace=”android:value”‘ to element at AndroidManifest.xml:25:5-27:34 to override.
سلام، دلیلش تداخل manifest لایبرری هایی که به پروژه اضافه کردید با manifest پروژه خودتون هست. بایستی ورژن لایبرری recyclerview با appcompat داخل build.gradle یکی باشه، ورژن recyclerview رو به ۲۵.۳.۱ تغییر بدید مشکل حل می شه.
چطور می توان از یک Fragment یک activity دیگری را باز کرد ؟؟
سلام، از متد startActivity باید استفاده کنید و اکتیویتی مقصد رو مشخص کنید
ارور دیگه ای هم دارم که تو صفحه xml هست
Failed to load AppCompat ActionBar with unknown error. (3 similar errors not shown)
بخاطر این ارور
Preview اپ رو ندارم
داخل فایل styles.xml برید و theme رو AppCompat.Theme.Light.NoActionBar رو انتخاب کنید ببینید درست می شه یا نه
سلام
واقعا از این دوره ی خوب ممنونم من تا حالا 3 تا دوره از سایت های دیگه خریدم ولی واقعا آموزش های سایت شما با بقیه سایت ها فرق داره خیلی عالیه و کاربردی .
به همه ی دوستام که میخوان آموزش جدیدی بخرن حتما پیشنهاد میکنم ممنونم
سلام، خیلی ممنونم، شما لطف دارید. خوشحالم که اینطوره
سلام و خسته نباشید استاد
من تمامی مراحل رو 3 بار یعنی از اول ساخت یک layout برای recycle view پیش رفتم تا آخر این جلسه و هر بار موقع اجرای نهایی بدون نشون دادن یه ارور توی android studio برنامه توی ماشین مجازی بعد از نشون دادن یه صفحه سفید می نوشت متاسفم برنامه متوقف شد و می پرید بیرون
امروز بعد کلی مغز ترکوندن رفتم یه اندروید بالاتر یعنی اندروید 7 و برنامه اجرا شد بدون هیچ مشکلی
حالا مشکل من اینه که من اول کار api 17 رو انتخاب کردم ولی الان باید حتمی اندروید 7 باشه تا اجرا بشه
ممنون میشم بگید مشکل کارم کجاست
خودم فکر می کنم از قسمتی که depencnsiy رو انتخاب کردم باشه چون بعد از گرفتن liberary بصورت دستی ورژن liberary رو به ورژن compile خودم تغییر دادم.
قسمت هاییrecycle و design بعد از اضافه شدن خودشون 26-0-0-alpha بود که خودم مجبور شدم تغییرش بدم
ممنون ببخشید سرتونو درد اوردم
سلام٬ احتمالا از متدی استفاده شده داخل کدهاتون که داخل api 17 کار نمی کنه. از خطایی که می ده اسکرین شات بگیرید و ارسال کنید تا دقیق تر بتونم راهنماییتون کنم.
سلام
اینطور که من متوجه شدم به این دلیل از ViewPager استفاده میکنیم تا کاربر بتونه بین فرگمنت ها swipe کنه. اگر درست متوجه شده باشم ما میتونیم چند فرگمنت رو توسط چند دکمه در یک FrameLayout فراخوانی کنیم بدون اینکه نیاز به ViewPager باشه. درسته ؟
سلام٬ بله اما viewpager کارهایی دیگه ای هم انجام می ده مثل مدیریت lifecycle فرگمنت ها. مثلا زمانی که تعداد فرگمنت های زیاد باشه فقط مقدار مشخصی از اون ها رو داخل حافظه نگه می داره.
سلام استاد شاهینی
بنده مطالب این جلسه رو انجام دادم. در آخر شکل اکتیویتی بوتیک من به این شکل در آمد:
http://s1.picofile.com/file/8287060968/malehman.PNG
به غیر از ردیف اول بقیه ردیف ها نیستن. اینم فایل جاوا و xml مربوط به پروژه:
java
xml:
http://s4.picofile.com/file/8287062334/xml.PNG
اگر به کد مربوط به قسمت های دیگه هم نیاز هست بفرمایید اونهارو هم می فرستم.
با تشکر
سلام٬ متاسفانه عکس هاتون باز نمی شن. به ایمیلم فایل xml مربوط به layout سطر رو ارسال کنید.
سلام٬ بله داخل لیست آموزش ها قرار دادم٬ اردیبهشت ماه دوره آپدیت می شه و این آموزش رو هم یادداشت کردم که قرار بدم