Bu codelab, Android Kotlin Hakkında Temel Bilgiler kursunun bir parçasıdır. Bu kurstan en iyi şekilde yararlanmak için codelab'leri sırayla tamamlamanızı öneririz. Kursla ilgili tüm codelab'ler Android Kotlin Hakkında Temel Bilgiler codelab'leri açılış sayfasında listelenir.
Bu codelab'de parçalar hakkında bilgi edinecek ve AndroidTrivia adlı başlangıç uygulamasında bir parça oluşturacaksınız. Bir sonraki codelab'de gezinme hakkında daha fazla bilgi edinecek ve AndroidTrivia uygulamasında daha fazla çalışma yapacaksınız.
Bilmeniz gerekenler
- Kotlin'in temelleri
- Kotlin'de temel Android uygulamaları oluşturma
- Düzenlerle çalışma
Neler öğreneceksiniz?
- Uygulamanıza statik olarak Fragment ekleme
Yapacaklarınız
- Bir etkinlik içinde parça oluşturun.
Bu dersi oluşturan üç codelab'de AndroidTrivia adlı bir uygulama üzerinde çalışacaksınız. Tamamlanan uygulama, kullanıcının Android kodlamayla ilgili üç bilgi yarışması sorusunu yanıtladığı bir oyundur. Kullanıcı üç soruyu da doğru yanıtlarsa oyunu kazanır ve sonuçlarını paylaşabilir.
AndroidTrivia uygulaması, gezinme kalıplarını ve kontrollerini gösterir. Uygulamanın çeşitli bileşenleri vardır:
- Yukarıdaki ekran görüntüsünde solda gösterilen başlık ekranında kullanıcı oyunu başlatır.
- Ortada yukarıda gösterilen sorulu oyun ekranında kullanıcı oyunu oynar ve cevaplarını gönderir.
- Sağ üstte gösterilen gezinme çekmecesi, uygulamanın kenarından kayarak açılır ve başlık içeren bir menü içerir. Çekmece simgesi
gezinme çekmecesini açar. Gezinme çekmecesi menüsünde Hakkında sayfasına ve oyun kurallarına ait bağlantılar bulunur.
Uygulamanın üst kısmında, işlem çubuğu olarak da bilinen uygulama çubuğu adlı renkli bir görünüm bulunur.
Bu codelab'de, Bilgi Yarışması uygulamasını tamamlarken ihtiyacınız olan şablon kodunu ve parça sınıflarını sağlayan bir başlangıç uygulamasından çalışacaksınız.
- AndroidTrivia-Starter Android Studio projesini indirin.
- Projeyi Android Studio'da açın ve uygulamayı çalıştırın. Uygulama açıldığında, uygulama adını ve boş bir ekran görüntülemek dışında hiçbir şey yapmaz.
- Proje dosyalarını incelemek için Android Studio Proje bölmesinde Proje: Android görünümünü açın.
MainActivity
sınıfını ve parça sınıflarını görmek için app > java klasörünü açın. - res > layout klasörünü açın ve activity_main.xml dosyasını çift tıklayın.
activity_main.xml
dosyası, Düzen Düzenleyici'de görünür. - Tasarım sekmesini tıklayın.
activity_main.xml
dosyası için Bileşen Ağacı, kök düzeni dikeyLinearLayout
olarak gösterir.
Dikey doğrusal düzende, düzendeki tüm alt görünümler dikey olarak hizalanır.
Parça, bir etkinlikteki davranışı veya kullanıcı arayüzünün (UI) bir bölümünü temsil eder. Çok panelli bir kullanıcı arayüzü oluşturmak için tek bir etkinlikte birden fazla parçayı birleştirebilir ve bir parçayı birden fazla etkinlikte yeniden kullanabilirsiniz.
Parçayı, bir etkinliğin modüler bölümü olarak düşünebilirsiniz. Bu, diğer etkinliklerde de kullanabileceğiniz bir "alt etkinlik" gibidir:
- Parçanın kendi yaşam döngüsü vardır ve kendi giriş etkinliklerini alır.
- Etkinlik çalışırken bir parça ekleyebilir veya kaldırabilirsiniz.
- Parça, Kotlin sınıfında tanımlanır.
- Bir parçanın kullanıcı arayüzü, XML düzen dosyasında tanımlanır.
AndroidTrivia uygulamasında bir ana etkinlik ve birkaç parça var. Çoğu parça ve bunların düzen dosyaları sizin için tanımlanmıştır. Bu görevde bir parça oluşturacak ve parçayı uygulamanın ana etkinliğine ekleyeceksiniz.
1. adım: Bir parça sınıfı ekleyin
Bu adımda boş bir TitleFragment
sınıfı oluşturursunuz. Yeni bir parça için Kotlin sınıfı oluşturarak başlayın:
- Android Studio'da, odağı proje dosyalarına geri getirmek için Proje bölmesinin herhangi bir yerini tıklayın. Örneğin, com.example.android.navigation klasörünü tıklayın.
- Dosya > Yeni > Parça > Parça (Boş) seçeneğini belirleyin.
- Parça adı için TitleFragment'ı kullanın. Layout XML oluştur, parça fabrika yöntemlerini dahil et ve arayüz geri çağırmalarını dahil et dahil olmak üzere tüm onay kutularının işaretini kaldırın.
- Son'u tıklayın.
- Henüz açık değilse
TitleFragment.kt
parça dosyasını açın. Bu yöntem,onCreateView()
yöntemini içerir. Bu yöntem, bir parçanın yaşam döngüsü sırasında çağrılan yöntemlerden biridir. onCreateView()
içinde,setText
ile başlayan satır da dahil olmak üzerereturn TextView(activity).apply
bölümünü kaldırın.onCreateView()
işlevinde yalnızca aşağıdaki kod kalır:
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
}
Bağlama nesnesi oluşturma
Parça şu anda derlenmeyecek. Parçanın derlenmesi için bir bağlama nesnesi oluşturmanız ve parçanın görünümünü genişletmeniz gerekir (bu, bir etkinlik için setContentView()
kullanmaya eşdeğerdir).
onCreateView()
yöntemindeTitleFragment.kt
,binding
değişkeni oluşturun (val binding
).- Parçanın görünümünü genişletmek için parçanın
Binding
nesnesindeDataBindingUtil.inflate()
yöntemini çağırın. Bu nesneFragmentTitleBinding
'dir.
Yönteme dört parametre iletin:
inflater
, bağlama düzenini genişletmek için kullanılanLayoutInflater
'dir.- Şişirilecek düzenin XML düzen kaynağı. Sizin için önceden tanımlanmış düzenlerden birini kullanın (
R.layout.fragment_title
). container
üst öğesi içinViewGroup
. (Bu parametre isteğe bağlıdır.)false
değeri içinattachToParent
.
DataBindingUtil.inflate
tarafından döndürülen bağlamayıbinding
değişkenine atayın.- Şişirilmiş görünümü içeren yöntemden
binding.root
döndürülür.onCreateView()
yönteminiz artık aşağıdaki koda benziyor:
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
val binding = DataBindingUtil.inflate<FragmentTitleBinding>(inflater,
R.layout.fragment_title,container,false)
return binding.root
}
2. adım: Yeni parçayı ana düzen dosyasına ekleyin
Bu adımda, TitleFragment
öğesini uygulamanın activity_main.xml
düzen dosyasına eklersiniz.
- res > layout > activity_main.xml dosyasını açın ve düzen XML kodunu görüntülemek için Text (Metin) sekmesini tıklayın.
- Mevcut
LinearLayout
öğesinin içine birfragment
öğesi ekleyin. - Parçanın kimliğini
titleFragment
olarak ayarlayın. - Parçanın adını, parça sınıfının tam yolu olarak ayarlayın. Bu örnekte tam yol
com.example.android.navigation.TitleFragment
'dır. - Düzen genişliğini ve yüksekliğini
match_parent
olarak ayarlayın.
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<fragment
android:id="@+id/titleFragment"
android:name="com.example.android.navigation.TitleFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
</layout>
- Uygulamayı çalıştırın. Parça, ana ekranınıza eklenir.
Android Studio projesi: AndroidTriviaFragment
Bu codelab'de, AndroidTrivia uygulamasına bir parça eklediniz. Bu uygulamayı, bu dersteki sonraki iki codelab'de de kullanmaya devam edeceksiniz.
- Parça, bir etkinliğin modüler bölümüdür.
- Parçanın kendi yaşam döngüsü vardır ve kendi giriş etkinliklerini alır.
- XML düzen dosyasındaki parçanın düzenini tanımlamak için
<fragment>
etiketini kullanın. onCreateView()
içindeki bir parça için düzeni genişletin.- Etkinlik çalışırken bir parça ekleyebilir veya kaldırabilirsiniz.
Udacity kursu:
Android geliştirici belgeleri:
Bu bölümde, bir eğitmenin yönettiği kurs kapsamında bu codelab'i tamamlayan öğrenciler için olası ödevler listelenmektedir. Eğitmen, aşağıdakileri yapmalıdır:
- Gerekirse ödev atayın.
- Öğrencilere ev ödevi ödevlerini nasıl göndereceklerini bildirin.
- Ödevlere not verin.
Eğitmenler bu önerileri istedikleri kadar kullanabilir ve uygun olduğunu düşündükleri diğer ödevleri verebilirler.
Bu codelab'i kendi başınıza tamamlıyorsanız bilginizi test etmek için bu ödevleri kullanabilirsiniz.
Bu soruları yanıtlayın
1. Soru
Parçalar ve etkinlikler arasındaki farklar nelerdir? Doğru olan tüm ifadeleri seçin.
- Parça oluştururken
onCreateView()
yönteminde düzeni genişletirsiniz. Bir etkinlik oluştururken düzenionCreate()
içinde genişletirsiniz. - Etkinliklerin kendi düzenleri vardır ancak parçaların kendi düzenleri olamaz.
- Etkinliklerin kendi yaşam döngüsü vardır ancak parçaların yoktur.
- Bir parça veya etkinlik için düzeni genişletirken düzene
R.layout.
layoutname
olarak başvurabilirsiniz.
2. Soru
Aşağıdaki ifadelerden hangisi parçacıklar hakkında doğrudur? Uygun olan tüm seçenekleri işaretleyin.
- Bir parçayı birden fazla etkinlikte kullanabilirsiniz.
- Bir etkinlikte birden fazla parça olabilir.
- Bir Kotlin sınıfında bir parça tanımladığınızda bu parça otomatik olarak
activity_main.xml
düzen dosyasına eklenir. - Bir düzen dosyasında parçanın ekleneceği yeri tanımlamak için
<fragment>
etiketini kullanın.
Sonraki derse başlayın:
Bu kurstaki diğer codelab'lerin bağlantılarını Android Kotlin Hakkında Temel Bilgiler codelab'leri açılış sayfasında bulabilirsiniz.