11-Ma’ruza Mavzu: Resurslar va fragmentlar. Reja: Resurslar bilan ishlash


Download 345.81 Kb.
bet7/12
Sana23.06.2023
Hajmi345.81 Kb.
#1652619
1   2   3   4   5   6   7   8   9   ...   12
Bog'liq
11-maruza

getStringArray usuli yordamida biz resurslarni satrlar massiviga kiritamiz, so'ngra sikl yordamida massivdan bitta satr qo'shib, TextViewga o'tkazamiz.

3. Fragmentlarga kirish.


Ilovani bir nechta faollik asosida tashkil qilish har doim ham maqbul bo'lmasligi mumkin. Android OS dunyosi juda bo'laklarga bo'lingan va ko'plab qurilmalardan iborat. Agar kichik ekranli mobil qurilmalar uchun har xil faollik o'rtasidagi o'zaro ta'sir juda yaxshi ko'rinsa, katta ekranlarda - planshetlar, televizorlar, activity oynalari katta ekran o'lchamlari tufayli unchalik yaxshi ko'rinmaydi. Shuning uchun bo'laklar tushunchasi paydo bo'ldi.
Fragment ilovaning vizual interfeysining bir qismini ifodalaydi, uni qayta ishlatish va qayta ishlatish mumkin. Fragmanning o'z l_ayout fayli bo'lishi mumkin, fragmentlarning o'z hayot aylanishi bor. Fragment activity kontekstida mavjud va o'z hayotiy tsikliga ega; activity tashqarisida u alohida bo'lishi mumkin emas. Har bir faollik bir nechta bo'laklarga ega bo'lishi mumkin.

Fragmanlar bilan ishlashni boshlash uchun bo'sh MainActivity bilan yangi loyiha yarataylik. Va birinchi navbatda, birinchi fragmentni yarataylik. Shuni ta'kidlash kerakki, loyihaning barcha funktsiyalari boshlang`ich holat bo'yicha mavjud emas, chunki u AndroidX Fragment library alohida kutubxonada joylashgan. Birinchidan, siz ushbu kutubxonani build.gradle faylidagi loyihaga ulashingiz kerak.

Undan boshlang`ich holat bo'yicha shunday ko'rinadigan dependences bo'limini toping:
dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

Uning boshiga satr qo'shing.


implementation "androidx.fragment:fragment:1.2.5"

Ya'ni, mening holimda shunday bo'ladi


dependencies {
implementation "androidx.fragment:fragment:1.2.5"
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

Keyin paydo bo'lgan Sync Now havolasini bosing.
Aslida, Fragment bu Fragment sinfidan meros bo'lib o'tadigan oddiy Java sinfidir. Biroq, Activity klassi singari, fragment ham grafik interfeysni aniqlash uchun layout xml fayllaridan foydalanishi mumkin. Shunday qilib, biz fragment ishlatadigan interfeys belgisini saqlash uchun fragment va xml faylini ifodalovchi Java sinfini alohida qo'shishimiz mumkin.
Shunday qilib, res/layout papkasiga yangi fragment_content.xml faylini qo'shamiz va undagi quyidagi kodni aniqlaymiz:


xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

android:id="@+id/updateButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Обновить"
app:layout_constraintBottom_toTopOf="@+id/dateTextView"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

android:id="@+id/dateTextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Hello from Fragment"
android:textSize="28sp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/updateButton" />

Fragmentlar activity bilan bir xil boshqaruv elementlarini o'z ichiga oladi. Xususan, u fragment interfeysini tashkil etuvchi tugma va matn qutisini belgilaydi.
Keling, fragment sinfining o'zini yarataylik. Buning uchun MainActivity bilan bir xil papkaga yangi sinf qo'shing. Buning uchun papkani o'ng tugmasini bosing va menyudan New->Java Class ni tanlang. Yangi sinfga ContentFragment nomini beramiz va uning uchun quyidagi tarkibni aniqlaymiz:
package com.example.fragmentapp;
import androidx.fragment.app.Fragment;
public class ContentFragment extends Fragment {
public ContentFragment(){
super(R.layout.fragment_content);
}
}

Download 345.81 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   12




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling