MDC-111 Android: Kod tabanınıza Materyal Bileşenleri Dahil Etme (Kotlin)

1. Giriş

logo_components_color_2x_web_96dp.png

Material Components (MDC), geliştiricilerin Materyal Tasarım'ı uygulamasına yardımcı olur. Google'daki bir mühendis ve kullanıcı deneyimi tasarımcısı ekibi tarafından oluşturulan MDC, düzinelerce güzel ve işlevsel kullanıcı arayüzü bileşeni içerir. Android, iOS, web ve Flutter.material.io/develop için kullanılabilir.

Android için Material Components (MDC Android), uygulamanızda paradigma değişikliği gerektiren yeni bir sistem veya çerçeve değildir. MDC Android, Android'de zaten bildiğiniz sınıflar ve API'ler (ör. AppCompat düğmeleri ve metin alanları) üzerine kurulmuştur. MDC Android tarafından sağlanan bileşenler gerektiği gibi kullanılabilir ve mevcut uygulamanızda anında tasarım iyileştirmesi yapılabilir.

Ne oluşturacaksınız?

Bu codelab'de, bir formdaki bazı mevcut bileşenleri MDC'nin yeni bileşenleriyle değiştireceksiniz.

Bu codelab'deki MDC-Android bileşenleri

  • Metin alanları
  • Düğmeler
  • Menüler

Gerekenler

  • Android geliştirme hakkında temel düzeyde bilgi
  • Android Studio (Henüz yüklemediyseniz buradan indirebilirsiniz.)
  • Android emülatörü veya cihazı (Android Studio üzerinden kullanılabilir)
  • Örnek kod (sonraki adıma bakın)

Android uygulamaları geliştirme deneyiminizi nasıl değerlendirirsiniz?

Başlangıç Orta İleri

2. Geliştirme ortamınızı kurma

Başlangıç Codelab uygulamasını indirin

Başlangıç uygulaması material-components-android-codelabs-111-starter/kotlin dizininde bulunur. Başlamadan önce bu dizine cd olduğunuzdan emin olun.

...veya GitHub'dan kopyalayın

Bu codelab'i GitHub'dan klonlamak için aşağıdaki komutları çalıştırın:

git clone https://github.com/material-components/material-components-android-codelabs
cd material-components-android-codelabs/
git checkout 111-starter

Başlangıç kodunu Android Studio'ya yükleme

  1. Kurulum sihirbazı tamamlandıktan ve Android Studio'ya Hoş Geldiniz penceresi gösterildikten sonra Mevcut bir Android Studio projesini aç'ı tıklayın. Örnek kodu yüklediğiniz dizine gidin ve Kargo projesini açmak için kotlin -> shipping'i seçin (veya bilgisayarınızda shipping'i arayın).
  2. Android Studio penceresinin alt kısmındaki etkinlik göstergelerinde belirtildiği gibi, Android Studio'nun projeyi oluşturup senkronize etmesi için bir süre bekleyin.
  3. Bu noktada, Android Studio, Android SDK veya derleme araçları eksik olduğundan (örneğin, aşağıda gösterilen) bazı derleme hataları verebilir. Bunları yüklemek/güncellemek ve projenizi senkronize etmek için Android Studio'daki talimatları uygulayın.

2wEZ1kuSFwiRvi_vYXnYfwoQ5J79OVBi1SL6044ETje5cDT2rUHGy8ExjGxlBWlWuNUMf5tkLRUrr2_bz_0Im_JDvLyC-X-tNmBJvKUgsn8T4d11A1cq0ItqQl2n6DJrYKY-dEyRdw

Başlangıç uygulamasını çalıştırma

  1. Çalıştır / Oynat düğmesinin solundaki derleme yapılandırmasının app olduğundan emin olun.
  2. Uygulamayı oluşturup çalıştırmak için yeşil Çalıştır / Oynat düğmesine basın.
  3. Dağıtım Hedefini Seçin penceresinde, kullanılabilir cihazlarınızda listelenen bir Android cihazınız varsa 8. adıma geçin. Aksi takdirde Yeni Sanal Cihaz Oluştur'u tıklayın.
  4. Donanım Seçin ekranında Pixel 2 gibi bir telefon cihazı seçin ve Sonraki'yi tıklayın.
  5. System Image (Sistem Görüntüsü) ekranında, tercihen en yüksek API düzeyi olan son Android sürümünü seçin. Yüklü değilse gösterilen İndir bağlantısını tıklayın ve indirme işlemini tamamlayın.
  6. İleri'yi tıklayın.
  7. Android Sanal Cihazı (AVD) ekranında ayarları olduğu gibi bırakın ve Bitir'i tıklayın.
  8. Dağıtım hedefi iletişim kutusundan bir Android cihaz seçin.
  9. Ok'i (Tamam) tıklayın.
  10. Android Studio, uygulamayı oluşturur, dağıtır ve hedef cihazda otomatik olarak açar.

Başarılı aktarım Uygulamayı ve formunu görürsünüz.

dba8e6132a12da58.png

3. Metin alanlarını güncelleme

Materyal Tasarım metin alanları, düz metin alanlarına göre önemli bir kullanılabilirlik avantajı sunar. Vuruş bölgesini bir ana hat veya arka plan dolgusuyla tanımladığınızda kullanıcıların formunuzla etkileşim kurma ya da daha karmaşık içeriklerdeki metin alanlarını belirleme olasılığı artar.

Import MDC-Android

app modülünün build.gradle dosyasına gidin ve dependencies bloğunun MDC Android'e bağımlılık içerdiğinden emin olun:

api 'com.google.android.material:material:1.1.0-alpha05'

Metin alanı stillerini değiştirme

shipping_info_activity.xml bölümünde, tüm TextInputLayout XML bileşenlerine aşağıdaki stili ekleyin:

shipping_info_activity.xml

style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"

Her TextInputLayout aşağıdaki gibi görünmelidir:

shipping_info_activity.xml

<com.google.android.material.textfield.TextInputLayout
   android:id="@+id/name_text_input"
   style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   app:errorEnabled="true">

   <com.google.android.material.textfield.TextInputEditText
       android:id="@+id/name_edit_text"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:hint="@string/label_name" />
</com.google.android.material.textfield.TextInputLayout>

Derleme ve çalıştırma:

824c2b33592b2c7e.png

Metin alanlarının tümü, MDC'deki yeni tasarımları kullanacak şekilde güncellendi.

Hata ekleme

MDC metin alanlarında yerleşik hata sunumu bulunur. MDC, metin alanınızın altına kırmızı metin ekler ve süslemeleri de kırmızı olarak günceller.

ShippingInfoActivity.kt içinde, metin girişini kontrol etmek ve hataları uygun şekilde ayarlamak için onCreate() öğesini güncelleyin. Bu, aşağıdaki gibi görünmelidir:

ShippingInfoActivity.kt

override fun onCreate(savedInstanceState: Bundle?) {
   super.onCreate(savedInstanceState)
   setContentView(R.layout.shipping_info_activity)

   val rootView = findViewById<View>(android.R.id.content)

   val textInputLayouts = Utils.findViewsWithType(
           rootView, TextInputLayout::class.java)

   save_button.setOnClickListener {
       var noErrors = true
       for (textInputLayout in textInputLayouts) {
           val editTextString = textInputLayout.editText!!.text.toString()
           if (editTextString.isEmpty()) {
               textInputLayout.error = resources.getString(R.string.error_string)
               noErrors = false
           } else {
               textInputLayout.error = null
           }
       }

       if (noErrors) {
           // All fields are valid!
       }
   }
}

Derleyin ve çalıştırın. KAYDET'e basın ancak en az bir metin alanını boş bırakın:

ef2a846d08f2780d.png

Boş olan metin alanları kırmızı renkte ve altında hata metni bulunur.

4. Düğmeyi güncelleme

MDC'de şu özelliklere sahip düğmeler bulunur:

  • Mürekkep dalgaları
  • Yuvarlak köşeler
  • Tema desteği
  • Piksel tarzı düzen ve tipografi
  • AppCompatButton (standart Android düğme sınıfı) üzerine kurulduğu için kodunuzda nasıl kullanacağınızı bilirsiniz.

İsteğe bağlı olarak düğme sınıfını değiştirme

Varsayılan olarak, Material kitaplığı normal düğmeleri otomatik olarak MDC düğmelerine dönüştürür. Ancak, köşe yarıçapını değiştirme gibi yalnızca MaterialButton'da kullanılabilen ek yöntemlere erişebilmek için Button'a yapılan tüm referansları isteğe bağlı olarak MaterialButton ile değiştirebilirsiniz. MDC düğmeleri, basit bir tak-çalıştır bileşenidir. XML bileşen adını Button ile MaterialButton olarak değiştirip varsayılan MaterialButton stilini MaterialButton öğesine uygulamanız yeterlidir.

shipping_info_activity.xml bölümünde düğmenizi şu şekilde değiştirin:

shipping_info_activity.xml

<Button
   android:id="@+id/save_button"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_gravity="end"
   android:layout_marginTop="16dp"
   android:text="@string/label_save" />

Alıcı:

shipping_info_activity.xml

<com.google.android.material.button.MaterialButton
   android:id="@+id/save_button"
   style="@style/Widget.MaterialComponents.Button"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_gravity="end"
   android:layout_marginTop="16dp"
   android:text="@string/label_save" />

Derleme ve çalıştırma:

824c2b33592b2c7e.png

5. Kart ekle

MaterialCardView, CardView üzerinde oluşturulmuş bir bileşendir ve şunları içerir:

  • Doğru yükseklik ve stil
  • Kontur genişliği ve renk özellikleri

İçeriği kartta sarmalama

İçeriğinizi içeren LinearLayout öğesini, aşağıdaki gibi bir MaterialCardView bileşeniyle shipping_info_activity.xml içine alın:

shipping_info_activity.xml

<com.google.android.material.card.MaterialCardView
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_margin="16dp"
   app:contentPadding="16dp">


   <!-- LinearLayout goes here -->


</com.google.android.material.card.MaterialCardView>

Derleyin ve çalıştırın. Formun tamamı bir kartla sarmalanmalıdır:

75c86ab9fa395e3c.png

Material Card View bileşeni, içeriğinizi kolayca bir kartın içine yerleştirmenin bilinen ancak yeni bir yoludur.

6. Özet

Anında değer göstermek için bazı yaygın bileşenleri (ör. metin alanları, düğmeler, kartlar) değiştirdiniz ve uygulamanızda tamamen yeni bir tasarım yapmanız gerekmedi. Üst uygulama çubuğu ve TabLayout gibi diğer bileşenler de büyük fark yaratabilir.

Sonraki adımlar

Android Widget Kataloğu'nu ziyaret ederek MDC-Android'deki daha fazla bileşeni keşfedebilirsiniz.

Bu codelab'i makul bir süre ve çabayla tamamlayabildim.

Kesinlikle katılıyorum Katılıyorum Ne katılıyorum ne katılmıyorum Katılmıyorum Kesinlikle katılmıyorum

Gelecekte Material Components'ı kullanmaya devam etmek istiyorum

Kesinlikle katılıyorum Katılıyorum Ne katılıyorum ne katılmıyorum Katılmıyorum Kesinlikle katılmıyorum