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

1. Giriş

logo_components_color_2x_web_96dp.png

Materyal Bileşenleri (MDC), geliştiricilerin Materyal Tasarım'ı uygulamasına yardımcı olur. Google'da mühendislerden ve kullanıcı deneyimi tasarımcılarından oluşan bir ekip tarafından oluşturulan MDC, onlarca güzel ve işlevsel kullanıcı arayüzü bileşeni içerir. Ayrıca Android, iOS, web ve Flutter.material.io/develop'da kullanılabilir.

Android için Materyal Bileşenler (MDC Android), uygulamanızda paradigma değişikliği gerektiren yeni bir sistem veya çerçeve değildir. MDC Android, AppCompat düğmeleri ve metin alanları gibi Android'de zaten bildiğiniz sınıfların ve API'lerin üzerine inşa edilmiştir. MDC Android tarafından sağlanan bileşenler, gerektiğinde kullanılabilir ve mevcut uygulamanızın tasarımında anında iyileştirme sağlar.

Oluşturacaklarınız

Bu codelab'de, bir formdaki mevcut bileşenlerden bazılarını MDC'deki yeni bileşenlerle değiştireceksiniz.

Bu codelab'deki MDC-Android bileşenleri

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

Gerekenler

  • Android geliştirmeyle ilgili temel bilgiler
  • Android Studio (yoksa buradan indirin)
  • Bir Android emülatörü veya cihaz (Android Studio üzerinden kullanılabilir)
  • Örnek kod (sonraki adıma bakın)

Android uygulamaları geliştirme konusundaki deneyim düzeyinizi nasıl değerlendirirsiniz?

Acemi Orta Yeterli

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

Starter codelab uygulamasını indirin

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

...veya GitHub'dan klonlayın

Bu codelab'i GitHub'dan klonlamak için şu 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

Android Studio'da başlangıç kodunu 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 kotlin -> shipping [gönderim] (veya bilgisayarınızda shipping [gönderim]) arama yaparak Shipping projesini açın.
  2. Android Studio'nun projeyi oluşturup senkronize etmesi için biraz bekleyin. Bunu, Android Studio penceresinin alt kısmındaki etkinlik göstergelerinde de görebilirsiniz.
  3. Bu noktada Android Studio, aşağıda gösterilene benzer Android SDK'sı veya derleme araçları sizde eksik olduğundan bazı derleme hataları oluşturabilir. 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ı geliştirip çalıştırmak için yeşil Çalıştır / Oynat düğmesine basın.
  3. Select Deployment Target (Dağıtım Hedefi Seçin) penceresinde, kullanılabilir cihazlarınız arasında zaten bir Android cihazınız varsa, 8. Adım'a atlayın. 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 ardından Sonraki'yi tıklayın.
  5. Sistem Görüntüsü ekranında yeni bir Android sürümünü (tercihen en yüksek API düzeyini) 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 Virtual Device (AVD) ekranındaki ayarları olduğu gibi bırakın ve Finish'i (Son) 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ıyla gerçekleştirildi. Uygulamayı ve formunu göreceksiniz.

dba8e6132a12da58.png

3. Metin alanlarını güncelleme

Materyal Tasarım metin alanları, düz metin alanlarına kıyasla büyük bir kullanılabilirlik kazanıyor. İsabet bölgesini bir dış çizgi veya arka plan dolgusu ile tanımladığınızda, kullanıcıların formunuzla etkileşime geçme veya daha karmaşık içerikteki metin alanlarını belirleme olasılığı artar.

MDC'yi içe aktarma-Android

app modülünün build.gradle dosyasına gidin ve dependencies bloğunun MDC Android'e bir 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 ürünü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üncellenir.

Hata ekleme

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

Metin girişini kontrol etmek ve hataları uygun şekilde ayarlamak için ShippingInfoActivity.kt ürününde onCreate() uygulamasını güncelleyin. Aşağıdaki gibi görünecektir:

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ı renktedir ve altında hata metni bulunur.

4. Düğmeyi güncelleyin

MDC'de şu düğmeler bulunur:

  • Mürekkep dalgaları
  • Yuvarlatılmış köşeler
  • Tema oluşturma desteği
  • Piksel mükemmelliğinde düzen ve yazı biçimi
  • AppCompatButton (standart Android düğme sınıfı) temel alınarak geliştirilmiştir. Böylece bunları kodunuzda nasıl kullanacağınızı bilirsiniz.

İsteğe Bağlı Olarak Değiştir düğmesi sınıfı

Materyal kitaplığı varsayılan olarak normal Düğmeleri otomatik olarak MDC Düğmelerine dönüştürür. Bununla birlikte, isteğe bağlı olarak tüm Button referanslarını MaterialButton ile değiştirebilirsiniz. Böylece, köşe yarıçapını değiştirmek gibi yalnızca MaterialButton'ta kullanılabilen ek yöntemlere erişebilirsiniz. MDC Düğmeleri basit bir tak ve çalıştır bileşenidir. Button XML bileşen adını MaterialButton ile değiştirip varsayılan MaterialButton stilini MaterialButton öğesine uygulamanız yeterlidir.

shipping_info_activity.xml ürününde yer alan düğmenizi 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 şu özelliklere sahip bir bileşendir:

  • Rakımı ve stili düzelt
  • Çizgi genişliği ve rengi özellikleri

İçerikleri kartta sarmalama

İçeriğinizin bulunduğu LinearLayout öğesini shipping_info_activity.xml içinde aşağıdaki gibi bir MaterialCardView bileşeniyle sarmalayı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 kart içine yerleştirilmelidir:

75c86ab9fa395e3c.png

Malzeme Kartı Görünümü bileşeni, içeriğinizi kart içinde kolayca sarmalamanın tanıdık ancak yeni bir yoludur.

6. Özet

Metin alanları, düğmeler ve kartlar gibi yaygın olarak kullanılan bazı bileşenleri, anında değer katacak şekilde değiştirdiniz. Üstelik uygulamanızı baştan sona baştan tasarlamanız gerekmedi. Üst Uygulama Çubuğu ve Sekme Düzeni gibi diğer bileşenler de büyük fark yaratabilir.

Sonraki adımlar

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

Bu codelab'i makul bir zaman ve çabayla tamamlayabildim

Kesinlikle katılıyorum Katılıyorum Ne memnunum ne değilim Katılmıyorum Kesinlikle katılmıyorum

Gelecekte Materyal Bileşenleri kullanmaya devam etmek istiyorum

Kesinlikle katılıyorum Katılıyorum Ne memnunum ne değilim Katılmıyorum Kesinlikle katılmıyorum