Menambahkan detail ke tampilan jam

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Detail tampilan jam menampilkan data dari sumber data. Dengan Complications API, tampilan jam dapat memilih sumber data yang ingin digunakan untuk mendapatkan data yang mendasarinya. Dengan API ini, tampilan jam dapat menampilkan informasi selain waktu tanpa memerlukan kode untuk mendapatkan data tersebut.

Menggunakan ComplicationSlotsManager

Untuk menambahkan detail ke tampilan jam, gunakan ComplicationSlotsManager.

ComplicationSlotsManager menentukan jumlah detail yang didukung tampilan jam, dan posisinya di layar. Untuk mendukung perubahan lokasi atau jumlah detail, ComplicationSlotsManager juga menggunakan CurrentUserStyleRepository seperti ditunjukkan pada contoh berikut:

 override fun createComplicationSlotsManager(
        currentUserStyleRepository: CurrentUserStyleRepository
    ): ComplicationSlotsManager {
        val defaultCanvasComplicationFactory =
            CanvasComplicationFactory { watchState, listener ->
                // ...
            }

        val leftComplicationSlot = ComplicationSlot.createRoundRectComplicationSlotBuilder(
            id = 100,
            canvasComplicationFactory = defaultCanvasComplicationFactory,
            // ...
        )
            .setDefaultDataSourceType(ComplicationType.SHORT_TEXT)
            .build()

        val rightComplicationSlot = ComplicationSlot.createRoundRectComplicationSlotBuilder(
            id = 101,
            canvasComplicationFactory = defaultCanvasComplicationFactory,
            // ...
        )
            .setDefaultDataSourceType(ComplicationType.SHORT_TEXT)
            .build()

        return ComplicationSlotsManager(
            listOf(leftComplicationSlot, rightComplicationSlot),
            currentUserStyleRepository
        )
 }

Jenis dan kolom

Tabel berikut menjelaskan jenis dan kolom objek ComplicationData. Jika tampilan jam meminta kolom yang tidak valid untuk suatu jenis detail, nilai default untuk kolom tersebut akan ditampilkan. Misalnya, jika tampilan jam mencoba mengakses kolom LONG_TEXT dalam jenis SHORT_TEXT, nilai default untuk kolom LONG_TEXT, null, akan ditampilkan.

Jenis Kolom wajib diisi Kolom opsional Catatan
SHORT_TEXT Teks pendek Ikon
Ikon anti burn-in
Judul singkat
Hanya tampilkan satu ikon atau judul singkat jika salah satu atau keduanya disediakan.
ICON Ikon Ikon anti burn-in Digunakan saat teks tidak diperlukan. Ikon diharapkan memiliki warna tunggal, dan mungkin diberi warna oleh tampilan jam.
RANGED_VALUE Nilai
Nilai min
Nilai maks
Ikon
Ikon anti burn-in
Teks pendek
Judul singkat
Kolom opsional tidak dijamin akan ditampilkan. Jika ingin menggambar status progres Anda sendiri, Anda dapat menggunakan metode isRangedValueProgressHidden() untuk menyembunyikan status progres yang disediakan oleh class ComplicationDrawable.
LONG_TEXT Teks panjang Judul panjang
Ikon
Ikon anti burn-in
Gambar kecil
Menampilkan judul panjang jika tersedia.
SMALL_IMAGE Gambar kecil Gambar kecil memiliki salah satu dari dua gaya: gaya foto atau gaya ikon. Gaya foto berarti gambar akan mengisi ruang dan dapat dipangkas. Gaya ikon berarti gambar tidak dapat dipangkas dan dapat diberi padding. Variabilitas gambar dapat menghasilkan gambar yang tidak cocok untuk ditampilkan dalam mode standby di perangkat dengan anti burn-in atau dengan mode standby bit rendah. Saat anti burn-in atau mode standby bit rendah diaktifkan, tampilan jam dapat menggunakan gambar kecil anti burn-in karena cukup aman. Jika tidak, gambar tidak akan ditampilkan karena sulit bagi tampilan jam untuk menentukan kecocokan.
LARGE_IMAGE Gambar besar Gambar ini diharapkan cukup besar untuk mengisi tampilan jam. Variabilitas gambar dapat menghasilkan gambar yang tidak cocok untuk ditampilkan dalam mode standby di perangkat dengan anti burn-in atau dengan mode standby bit rendah. Karena sulit bagi tampilan jam untuk menentukan kesesuaian tampilan, tampilan jam tidak akan menampilkan gambar dalam mode standby jika anti burn-in atau mode standby bit rendah diaktifkan.

Tabel berikut menjelaskan jenis detail untuk data kosong yang dapat dikirim untuk slot detail apa pun. Jenis ini tidak memiliki kolom dan tidak perlu disertakan dalam daftar jenis yang didukung. Jenis ini memungkinkan tampilan jam membedakan tiga kasus penggunaan berikut:

  • Tidak ada sumber yang dipilih
  • Pengguna telah memilih "kosong" untuk suatu slot
  • Sumber tidak memiliki data untuk dikirim

Sumber tidak dapat mengirim TYPE_EMPTY sebagai respons terhadap permintaan update. Sebagai gantinya, kirim TYPE_NO_DATA.

Jenis detail Deskripsi
TYPE_NOT_CONFIGURED Dikirim oleh sistem saat salah satu detail diaktifkan, tetapi pengguna belum memilih sumber dan tidak ada default yang ditetapkan.

Tidak dapat dikirim oleh sumber.

TYPE_EMPTY Dikirim oleh sistem saat salah satu detail diaktifkan dan pengguna memilih "kosong", bukan sumber, atau saat tampilan jam tidak memilih sumber, dan jenis detail ini sebagai default.

Tidak dapat dikirim oleh sumber.

TYPE_NO_DATA Dikirim oleh sistem saat salah satu detail yang memiliki sumber diaktifkan untuk mengosongkan detail sebelum data aktual diterima dari sumber.

Dapat dikirim oleh sumber jika tidak memiliki data aktual untuk dikirim

Untuk mengetahui informasi selengkapnya, lihat contoh WatchFace di GitHub.