Uygulamanızda kullanıcılar için çok adımlı görevler olabilir. Örneğin, uygulamanızın ek içerik satın alarak, karmaşık yapılandırma ayarı yaparak veya sadece kararı onaylamaktır. Tüm bu görevler, kullanıcılara en az bir sıralı ya da kararlar almak anlamına gelir.
androidx.leanback kitaplığı, çok adımlı kullanıcı görevlerini uygulamak için sınıflar sağlar. Bu sayfa
nasıl kullanılacağını anlatır.
GuidedStepSupportFragment
sınıf
bir görevi tamamlamak için bir dizi kararda kullanıcıya rehberlik etmektir. GuidedStepSupportFragment
.
çok adımlı görevlerin TV cihazlarında anlaşılmasını ve gezinmesini kolaylaştırmak için TV kullanıcı arayüzü en iyi uygulamalarını kullanır.
Bir adımla ilgili ayrıntıları girin
GuidedStepSupportFragment
, bir dizideki tek bir adımı temsil eder
bir dizi adımdan oluşur. Görsel olarak,
mümkün olan işlemlerin veya kararların listesidir.
![](https://developer.android.com/static/images/training/tv/playback/guided-step-screen.png?authuser=0&hl=tr)
Şekil 1. Açıklamalı adım örneği.
Çok adımlı görevinizdeki her adım için
GuidedStepSupportFragment
ve aşağıdakilerle ilgili bağlam bilgileri sağlayın:
Kullanıcının atabileceği adım ve eylemler. Geçersiz kıl
onCreateGuidance()
.
ve yeni bir
Bağlam içeren GuidanceStylist.Guidance
bilgileri (ör. adım başlığı, açıklama ve simge) aşağıdaki örnekte gösterildiği gibi:
Kotlin
override fun onCreateGuidance(savedInstanceState: Bundle?): GuidanceStylist.Guidance { return GuidanceStylist.Guidance( getString(R.string.guidedstep_first_title), getString(R.string.guidedstep_first_description), getString(R.string.guidedstep_first_breadcrumb), activity.getDrawable(R.drawable.guidedstep_main_icon_1) ) }
Java
@Override public GuidanceStylist.Guidance onCreateGuidance(Bundle savedInstanceState) { String title = getString(R.string.guidedstep_first_title); String breadcrumb = getString(R.string.guidedstep_first_breadcrumb); String description = getString(R.string.guidedstep_first_description); Drawable icon = getActivity().getDrawable(R.drawable.guidedstep_main_icon_1); return new GuidanceStylist.Guidance(title, description, breadcrumb, icon); }
GuidedStepSupportFragment
alt sınıfını istediğiniz gruba ekleyin
telefon ederek etkinlik
GuidedStepSupportFragment.add()
etkinliğinizin onCreate()
yönteminde.
Etkinliğiniz yalnızca GuidedStepSupportFragment
içeriyorsa
nesneler için GuidedStepSupportFragment.addAsRoot()
kullanın
(add()
yerine) ilk GuidedStepSupportFragment
öğesini ekleyin. Kullanım
addAsRoot()
, kullanıcının izleme sırasında TV uzaktan kumandasındaki Geri düğmesine basmasını sağlar.
hem ilk GuidedStepSupportFragment
hem de
GuidedStepSupportFragment
ve üst etkinlik kapanıyor.
Not:
GuidedStepSupportFragment
nesne programatik olarak,
değil.
Kullanıcı işlemlerini oluşturma ve işleme
Geçersiz kılarak kullanıcı işlemleri ekleyin
onCreateActions()
Geçersiz kılmanızda her biri için yeni bir GuidedAction
ekleyin
işlem öğesini seçin ve işlem dizesini, açıklamasını ve kimliğini girin. Tekliflerinizi otomatikleştirmek ve optimize etmek için
Yeni işlemler eklemek için GuidedAction.Builder
.
Kotlin
override fun onCreateActions(actions: MutableList<GuidedAction>, savedInstanceState: Bundle?) { super.onCreateActions(actions, savedInstanceState) // Add "Continue" user action for this step actions.add(GuidedAction.Builder() .id(CONTINUE) .title(getString(R.string.guidedstep_continue)) .description(getString(R.string.guidedstep_letsdoit)) .hasNext(true) .build()) ...
Java
@Override public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) { // Add "Continue" user action for this step actions.add(new GuidedAction.Builder() .id(CONTINUE) .title(getString(R.string.guidedstep_continue)) .description(getString(R.string.guidedstep_letsdoit)) .hasNext(true) .build()); ...
İşlemler tek satırlık seçimlerle sınırlı değildir. Elektronik tablo kullanarak yapılmış oluşturabileceğiniz işlemler:
-
Ayarlayarak kullanıcı seçenekleri hakkında ek bilgi sağlamak için bir bilgi etiketi işlemi ekleyin
infoOnly(true)
infoOnly
doğru değerine ayarlandığında kullanıcılar işlemi seçemez. -
Şu ayarı kullanarak düzenlenebilir metin işlemi ekleyin:
editable(true)
editable
Doğru değerine ayarlandığında, kullanıcı uzaktan kumanda veya bağlı klavye bulunur. Geçersiz kıl Kullanıcının girdiği değiştirilmiş metni almak içinonGuidedActionEditedAndProceed()
. Kullanıcının girişi ne zaman iptal ettiğini öğrenmek içinonGuidedActionEditCanceled()
politikasını da geçersiz kılabilirsiniz. -
İşaretlenebilir radyo düğmesi gibi çalışan bir dizi işlem eklemek için
checkSetId()
. işlemleri bir grup halinde gruplandırmak için ortak bir kimlik değeri ile. Aynı listede yer alan ve aynı onay kümesi kimlikleri bağlı olarak kabul edilir. Kullanıcı bu kümedeki işlemlerden birini seçtiğinde işlem işaretlenir ve diğer tüm işlemlerin işareti kaldırılır. -
Şu tuşu kullanarak bir tarih seçici işlem ekleyin:
GuidedDatePickerAction.Builder
. yerineonCreateActions()
içindeGuidedAction.Builder
. Geçersiz kıl Kullanıcının girdiği değiştirilme tarihi değerini almak içinonGuidedActionEditedAndProceed()
. - Kullanıcının genişletilmiş bir listeden seçim yapabilmesi için alt işlemleri kullanan bir işlem tercih edebilirsiniz. Alt işlemler, Alt işlem ekleme bölümünde açıklanmıştır.
- İşlemler listesinin sağ tarafında görünen ve kolayca kullanabileceğiniz bir düğme işlemi ekleyin erişilebilir. Düğme işlemleri Ekle düğmesi işlemler bölümüne bakın.
Bir işlem seçmeye dair görsel bir gösterge de
yeni bir adımdır.
hasNext(true)
Ayarlayabileceğiniz farklı tüm özellikler için bkz.
GuidedAction
İşlemlere yanıt vermek için geçersiz kılın
onGuidedActionClicked()
ve iletilen dosyayı işleyin.
GuidedAction
. Seçilen eylemi belirlemek için
GuidedAction.getId()
inceleniyor.
Alt işlem ekle
Bazı işlemler, kullanıcıya ek seçenekler sunmanızı gerektirebilir. CEVAP
GuidedAction
, aşağıdakiler için bir liste belirtebilir
alt işlemler menüsü olarak görüntülenen alt eylemler.
![](https://developer.android.com/static/images/training/tv/playback/guided-step-subaction.png?authuser=0&hl=tr)
Şekil 2. Açıklamalı adım alt işlemleri.
Alt işlem listesi normal işlemler veya radyo düğmesi işlemleri içerebilir, ancak düzenleme metin işlemleri değil, tarih seçici veya düzenlenebilir metin işlemleri değil. Ayrıca, bir alt işlemin kendi bir alt işlem kümesidir.
Alt işlemler eklemek için önce bir alt eylem listesi oluşturun
Aşağıdaki örnekte gösterildiği gibi, alt işlem görevi gören GuidedAction
nesne:
Kotlin
subActions.add(GuidedAction.Builder() .id(SUBACTION1) .title(getString(R.string.guidedstep_subaction1_title)) .description(getString(R.string.guidedstep_subaction1_desc)) .build()) ...
Java
List<GuidedAction> subActions = new ArrayList<GuidedAction>(); subActions.add(new GuidedAction.Builder() .id(SUBACTION1) .title(getString(R.string.guidedstep_subaction1_title)) .description(getString(R.string.guidedstep_subaction1_desc)) .build()); ...
onCreateActions()
alanında üst düzey bir
Gösterilen GuidedAction
alt işlem listesi açılır:
Kotlin
... actions.add(GuidedAction.Builder() .id(SUBACTIONS) .title(getString(R.string.guidedstep_subactions_title)) .description(getString(R.string.guidedstep_subactions_desc)) .subActions(subActions) .build()) ...
Java
@Override public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) { ... actions.add(new GuidedAction.Builder() .id(SUBACTIONS) .title(getString(R.string.guidedstep_subactions_title)) .description(getString(R.string.guidedstep_subactions_desc)) .subActions(subActions) .build()); ... }
Son olarak,
onSubGuidedActionClicked()
:
Kotlin
override fun onSubGuidedActionClicked(action: GuidedAction): Boolean { // Check for which action was clicked and handle as needed when(action.id) { SUBACTION1 -> { // Subaction 1 selected } } // Return true to collapse the subactions menu or // false to keep the menu expanded return true }
Java
@Override public boolean onSubGuidedActionClicked(GuidedAction action) { // Check for which action was clicked and handle as needed if (action.getId() == SUBACTION1) { // Subaction 1 selected } // Return true to collapse the subactions menu or // false to keep the menu expanded return true; }
Düğme işlemleri ekleme
Açıklamalı adımınızda kapsamlı bir işlem listesi varsa kullanıcıların listeyi kaydırması gerekebilir. en sık kullanılan işlemlere erişmeyi deneyin. Verileri ayırmak için düğme işlem listesinden yaygın olarak kullanılan işlemleri seçin. Düğme işlemleri işlem listesidir ve kolayca gezinilebilir.
![](https://developer.android.com/static/images/training/tv/playback/guided-step-buttonaction.png?authuser=0&hl=tr)
Şekil 3. Açıklamalı adım düğmesi işlemleri.
Düğme işlemleri normal işlemler gibi oluşturulur ve işlenir, ancak
düğme işlemleri
onCreateButtonActions()
.
(onCreateActions()
) içeriyor. Düğme işlemlerine şu dilde yanıt verme:
onGuidedActionClicked()
Adımlar arasında gezinme işlemleri gibi basit işlemler için düğme işlemlerini kullanın. Tarih seçici işlemini veya diğer düzenlenebilir işlemleri düğme işlemleri olarak kullanmayın. Ayrıca, düğme işlemlerinin alt işlemleri olamaz.
Rehberli adımları, açıklamalı bir adım dizisinde gruplandırın
GuidedStepSupportFragment
tek bir adımı temsil eder. Sıralı bir adım dizisi oluşturmak için birden çok
GuidedStepSupportFragment
nesneyi birlikte kullanmak:
Eklemek için GuidedStepSupportFragment.add()
sonraki adım olan parça yığınına geçmelidir.
Kotlin
override fun onGuidedActionClicked(action: GuidedAction) { val fm = fragmentManager when(action.id) { CONTINUE -> GuidedStepSupportFragment.add(fm, SecondStepFragment()) } }
Java
@Override public void onGuidedActionClicked(GuidedAction action) { FragmentManager fm = getFragmentManager(); if (action.getId() == CONTINUE) { GuidedStepSupportFragment.add(fm, new SecondStepFragment()); } ...
Kullanıcı TV uzaktan kumandasındaki Geri düğmesine basarsa cihaz, önceki
GuidedStepSupportFragment
parça yığını. Şu durumda:
sağlayan, kendi GuidedAction
geri davranışını bir sonraki adıma getirerek geri davranışını
getFragmentManager().popBackStack()
.
Kullanıcıyı dizide daha da önceki bir adıma geri döndürmeniz gerekiyorsa
popBackStackToGuidedStepSupportFragment()
.
parça yığınındaki belirli bir GuidedStepSupportFragment
öğesine dönmek için kullanılır.
Kullanıcı dizideki son adımı tamamladığında
Tümünü kaldırmak için finishGuidedStepSupportFragments()
GuidedStepSupportFragment
örnek
kaldır ve orijinal üst etkinliğe geri dön. Öğe
ilk GuidedStepSupportFragment
eklendi
addAsRoot()
kullanılıyor, sesli arama yapılıyor
finishGuidedStepSupportFragments()
, üst etkinliği de kapatır.
Adım sunumunu özelleştir
GuidedStepSupportFragment
sınıfı özel mülk kullanabilir.
Başlık metni biçimlendirmesi veya adım geçişi gibi sunu özelliklerini kontrol eden temalar
animasyonları da ekler. Özel temalar şuradan devralınmalıdır:
Theme_Leanback_GuidedStep
ve sağlayabilir
şunda tanımlanan özelliklerin değerlerini geçersiz kılmak
GuidanceStylist
ve
GuidedActionsStylist
.
GuidedStepSupportFragment
cihazınıza özel bir tema uygulamak için:
aşağıdakilerden birini yapın:
-
android:theme
özelliğini etkinlik öğesine sahip olmayabilir. Bu özellik ayarlanırsa tema tüm alt öğelere uygulanır Bu, ana etkinlik yalnızca birden fazla öğe içeriyorsa özel bir tema uygulamanın en basit yoludurGuidedStepSupportFragment
nesne. -
Etkinliğinizde özel bir tema kullanılıyorsa ve bu temayı uygulamak istemiyorsanız
Etkinlikteki diğer görünümlere
GuidedStepSupportFragment
stil,LeanbackGuidedStepTheme_guidedStepTheme
ekleyin özelliğini kullanabilirsiniz. Bu özellik, öğenin kullanıldığı özel tema yalnızcaGuidedStepSupportFragment
nesneleri yardımcı olabilir. -
Farklı konumlarda
GuidedStepSupportFragment
nesne kullanırsanız aynı genel çok adımlı görevin parçası olan ve tutarlı bir tüm adımlarda görsel tema, geçersiz kılmaGuidedStepSupportFragment.onProvideTheme()
ve özel temanızı döndürün.
Stil ve tema ekleme hakkında daha fazla bilgi için Stiller ve Temalar.
GuidedStepSupportFragment
sınıfı özel kullanır.
Tema özelliklerine erişmek ve özellikleri uygulamak için stilist sınıfları.
GuidanceStylist
sınıfı, tema bilgilerini kullanıyor
sol kılavuz görünümünün sunumunu kontrol ederken
GuidedActionsStylist
sınıfta tema bilgileri kullanılıyor
doğru işlemler görünümünün sunulmasını kontrol etmek için.
Adımlarınızın görsel stilini, tema özelleştirmenin sağladığı özelliklerin ötesinde özelleştirmek için alt sınıf
GuidanceStylist
veya
GuidedActionsStylist
ve alt sınıfınızı şu sürede döndürün:
GuidedStepSupportFragment.onCreateGuidanceStylist()
veya
GuidedStepSupportFragment.onCreateActionsStylist()
.
Bu alt sınıflarda neleri özelleştirebileceğiniz hakkında ayrıntılı bilgi için
GuidanceStylist
ve
GuidedActionsStylist
.