Laboratoriya №17
Fragmanlardan foydalanish
Ishning maqsadi: Android Studio dasturida fragmentlardan foydalanishni o‘rganish.
Bir nechta faoliyatga asoslangan dasturni tashkil qilish har doim ham maqbul bo‘lmasligi mumkin. Android OS dunyosi juda parchalangan va ko‘plab qurilmalardan iborat. Va agar kichik ekranli mobil qurilmalar uchun turli xil harakatlar o‘rtasidagi o‘zaro ta'sir juda yaxshi ko‘rinadigan bo‘lsa, unda katta ekranlarda - planshetlarda, televizorlarda, faollik oynalari katta ekran o‘lchami tufayli unchalik yaxshi ko‘rinmaydi. Shuning uchun parchalar tushunchasi paydo bo‘ldi.
Fragment qayta foydalanish va qayta foydalanish mumkin bo‘lgan ilova vizual interfeysining bir qismini ifodalaydi. Fragment o‘z tartib fayliga ega bo‘lishi mumkin, fragmentlar o‘z hayot aylanishiga ega. Fragment faoliyat kontekstida mavjud bo‘lib, o‘zining hayot aylanishiga ega, u alohida holda faoliyatdan tashqarida mavjud bo‘lolmaydi. Har bir faoliyat bir nechta bo‘laklarga ega bo‘lishi mumkin.
Fragmentlar bilan ishlashni boshlash uchun keling, bo‘sh MainActivity bilan yangi loyiha yarataylik. Avval birinchi fragmentni yaratamiz. Ammo darhol shuni ta'kidlash kerakki, fragmentlarning barcha standart funktsiyalari loyihada mavjud bo‘lmasligi mumkin, chunki u alohida kutubxonada - AndroidX Fragment kutubxonasida joylashgan. Va birinchi navbatda, ushbu kutubxonani build.gradle faylidagi loyihaga ulashingiz kerak.
Undagi bog‘liqliklar bo‘limini topamiz, u sukut bo‘yicha shunday ko‘rinadi:
bitta 2
3
bog‘liqliklar {
"androidx.appcompat:appcompat:1.2.0" ilovasi
to‘rttaamalga oshirish 'com.google.android.material:material:1.2.1'
amalga oshirish 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
sakkizandroidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
9 }
Boshida qatorni qo‘shing bittaAmalga oshirish "androidx.fragment:fragment:1.2.5"
Ya'ni, mening holimda
bitta 2
3
to‘rtta 5
6
7
bog‘liqliklar {
Amalga oshirish "androidx.fragment:fragment:1.2.5" "androidx.appcompat:appcompat:1.2.0" ilovasi
amalga oshirish 'com.google.android.material:material:1.2.1' amalga oshirish 'androidx.constraintlayout:constraintlayout:2.0.4'
sakkiz
9
o‘n
o‘n bir
testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
Va keyin paydo bo‘lgan Endi sinxronlash havolasini bosing.
Aslida, fragment Fragment sinfidan meros bo‘lgan oddiy Java sinfidir. Biroq, Activity klassi singari, fragment GUIni aniqlash uchun xml formatidagi fayllardan foydalanishi mumkin. Shunday qilib, biz fragmentni ifodalovchi Java sinfini va fragment foydalanadigan interfeys belgilarini saqlash uchun xml faylini alohida qo‘shishimiz mumkin.
Fragment sinfi Fragment sinfidan meros bo‘lishi kerak.
Fragment ma'lum bir xml formatidagi fayldan foydalanishini ko‘rsatish uchun tartib resursi identifikatori ota-klassning (ya'ni Fragment klassi) konstruktor chaqiruviga uzatiladi.
Butun loyiha quyidagicha ko‘rinadi:
|