Panel, kapladığı alanın özelliklerini tanımlar ve uygulama kapsayıcısı olarak işlev görür. Panelleri tanımlamak için XML yapılandırmalarını kullanırsınız. Paneller, kullanıcı arayüzlerini özelleştirmek için esnek ve kodsuz bir yaklaşım sunar. Sistem, örnekleri ve durumları yönetmek için tanımlı panelleri izler.
Panel listesi
Sistem kullanıcı arayüzü, panellerinin tanımlarını window_states
adlı bir dizi kaynağında yükler. Bu kaynak dizisi, her bir panel yapılandırmasının tanımlandığı XML dosyalarını gösterir. Bu merkezi yaklaşım, Scalable UI tarafından yönetilen panellerin amaçlandığı şekilde yüklendiği ve sistem tarafından kullanıma hazır olduğu anlamına gelir.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="window_states">
<item>@xml/app_panel</item>
<item>@xml/back_panel</item>
...
</array>
</resources>
Panel tanımı
Ölçeklenebilir kullanıcı arayüzü çerçevesindeki her panel, bir uygulama kapsayıcısının özelliklerini açıklayan <TaskPanel>
adlı bir XML etiketiyle tanımlanır. Sistem kullanıcı arayüzü, bu panel tanımlarını yükler ve başka bir yapılandırma yüklenene kadar panelleri izler.
Örneğin, döndürme veya açık sistem isteği nedeniyle yapılandırma değişikliği yapıldığında. <TaskPanel>
, yapılandırılabilir kullanıcı arayüzü bileşenleri aracılığıyla özelleştirilmiş bir deneyim oluşturmak için temel bileşen olarak kullanılır.
XML özellikleri
<TaskPanel>
etiketi, durumları ve geçişleri tanımlamak için kullanabileceğiniz bu özellikleri içerebilir.
Özellik | Durum | Açıklama |
---|---|---|
id |
Zorunlu | Panel için benzersiz bir tanımlayıcı belirtir. Bu özellik, PanelPool kaynağından paneli almak ve sistemdeki durumunu yönetmek için kullanılır. |
role |
Zorunlu | Panelin sistemdeki amacını veya işlevini tanımlar. Değer, bir dize kaynağına, bileşen adlarının dize dizisine veya bir düzen kimliğine atıfta bulunabilir. Örneğin, her zaman panelde gösterilmesi gereken kalıcı etkinlikleri veya şişirilecek bir düzeni tanımlayabilir. |
defaultVariant |
İsteğe bağlı | Panelin yüklendiğinde başlangıçta kullanması gereken varyantın kimliğini belirtir. Belirtilmezse sistem, varsayılan olarak tanımlanan ilk varyantı kullanabilir. |
displayId |
İsteğe bağlı | Panelin görünmesi amaçlanan ekranın kimliğini belirtir. |
defaultLayer |
İsteğe bağlı | Varyantlar katmanı açıkça tanımlamıyorsa panelin varyantları için varsayılan bir Z sırası belirleyebilir. |
controller |
İsteğe bağlı, değişikliğe tabidir. |
Yapılandırma değerlerinin özel panel denetleyicilerinde depolanmasına ve aktarılmasına olanak tanıyan, panele özel bir denetleyiciyi tanımlayan bir kaynağa (genellikle bir XML kimliği) referans verir. Bu denetleyiciler |
XML alt öğeleri
<TaskPanel>
etiketi, özellikleri ve varsayılan davranışları tanımlamak için bu özellikleri içerebilir.
Özellik | Açıklama |
---|---|
<Variant> |
İç içe yerleştirilmiş etiket, panelin belirli bir zamandaki görsel yapılandırmasını açıklar. Bir panelin birden fazla varyantı olabilir ve her varyant benzersiz bir kimlikle tanımlanır. Her varyant, söz konusu yapılandırma için sınırlar, görünürlük, katman, alfa, köşe yarıçapı ve iç kısımlar gibi özellikleri tanımlar. Varyantlar, üst varyantlardan da özellik devralabilir. |
<KeyFrameVariant> |
<Variant> uzantısı, görsel özelliklerin sürekli bir kesir değerine (0-1) dayalı olarak farklı varyantlar arasında enterpolasyonunu sağlar ve sürükleme işlemi sırasında olduğu gibi, panelin durumunun sürükleme miktarı gibi sürekli bir girişe bağlı olduğu durumlarda yumuşak ve dinamik geçişler için kullanılır. |
<Transitions> |
İç içe yerleştirilmiş etiket, kullanıcı arayüzünün farklı varyantlar arasında nasıl animasyon yapacağını açıklayan bir Her |
Örnek kod
<Panel id="@+id/panelId"
role="@array/roleValue"
defaultVariant="@id/closed"
displayId="0" >
<Variant id="@+id/base">
<Bounds left="0" top="0" width="100%" height="100%"/>
</Variant>
<Variant id="@+id/opened" parent="@id/base">
<Visibility isVisible="true"/>
</Variant>
<Variant id="@+id/closed" parent="@id/base">
<Visibility isVisible="false"/>
</Variant>
<Transitions>
<Transition fromVariant="@id/closed"
toVariant="@id/opened"
onEvent="open_event"/>
<Event id="_System_TaskOpenEvent" panelId="@id/panelId" />
</Transition>
</Transitions>
</Panel>