Fragment klassi Fragment sinfidan meros bo'lishi kerak.
Fragmentda ma'lum bir xml fayli layout ishlatilishini ko'rsatish uchun layout resurs identifikatori ota-sinf konstruktoriga (ya'ni Fragment sinfiga) chaqirishqa uzatiladi.
Butun loyiha quyidagicha ko'rinadi:
Activity ga fragment qo'shish. Fragmentni ishlatish uchun uni MainActivity ga qo'shing. Buni amalga oshirish uchun MainActivity interfeysini belgilaydigan activity_main.xml faylini o'zgartiraylik:
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.example.fragmentapp.ContentFragment" />
FragmentContainerView elementi iborani qo'shish uchun ishlatiladi. Asosan, FragmentContainerView FrameLayout sinfini kengaytiradigan va fragmentlar bilan ishlash uchun maxsus mo'ljallangan View ob'ektini ifodalaydi. Aslida, bo'laklardan tashqari, u boshqa hech narsani o'z ichiga olmaydi.
Uning android:name atributi ishlatiladigan bo'lakning sinf nomini ko'rsatadi. Mening holatimda, com.example.fragmentapp.ContentFragment paketini hisobga olgan holda, fragmentning to'liq malakali sinf nomi.
MainActivity sinfining kodi loyiha yaratilgandek qoladi:
package com.example.fragmentapp;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Agar biz ilovani ishga tushirsak, biz aslida activity orqali qila oladigan interfeysni ko'ramiz, faqat bu holda interfeys fragmentda aniqlanadi:
Aytish joizki, Android Studio fragment qo'shish uchun tayyor shablonni taqdim etadi. Keling, aslida bu usuldan foydalanamiz.
Buning uchun MainActivity klassi joylashgan papkani bosing, sichqonchaning o'ng tugmachasini bosing va paydo bo'lgan menyuda New->Fragment->Fragment(Blank) ni tanlang:
Ushbu shablon fragment sinfini va tegishli interfeyslarni belgilash sinfining fayl nomini ko'rsatishni taklif qiladi.
Do'stlaringiz bilan baham: |