Görüntülemeye dayalı mevcut bir uygulamanız varsa kullanıcı arayüzünün tamamını tek seferde yeniden yazmak istemeyebilirsiniz. Bu sayfa, mevcut uygulamanıza yeni Oluştur bileşenleri eklemenize yardımcı olur. Oluştur'u uygulamanızda kullanmaya başlamak için Mevcut bir uygulama için Oluştur'u ayarlama başlıklı makaleyi inceleyin.
Jetpack Compose, View birlikte çalışabilirliği göz önünde bulundurularak tasarlanmıştır. Bu işlev sayesinde, yeni özellikler oluşturmaya devam ederken mevcut Görüntüleme tabanlı uygulamanızı Oluştur'a taşıyabilirsiniz. Compose'a geçiş yapmak için uygulamanız tamamen Compose'a geçene kadar kod tabanınızda Compose ve Görünümler'in birlikte bulunduğu kademeli bir geçiş yapmanızı öneririz.
Uygulamanızı Compose'a taşımak için aşağıdaki adımları uygulayın:
- Oluştur ile yeni ekranlar oluşturun.
- Özellikler oluştururken yeniden kullanılabilir öğeleri tanımlayın ve ortak kullanıcı arayüzü bileşenleri kitaplığı oluşturmaya başlayın.
- Mevcut özellikleri tek ekranda değiştirin.
Oluştur ile yeni ekranlar oluşturma
Bir ekranın tamamını kapsayan yeni özellikler oluşturmak için Compose'u kullanmak, Compose'u kullanmaya başlamanızı sağlamanın en iyi yoludur. Bu stratejiyle, şirketinizin iş ihtiyaçlarını karşılarken özellik ekleyebilir ve Oluştur'un avantajlarından yararlanabilirsiniz.
Mevcut uygulamanızda yeni ekranlar oluşturmak için Derle'yi kullandığınızda uygulamanızın mimarisinin kısıtlamaları altında çalışmaya devam edersiniz. Fragment'leri ve gezinme bileşenini kullanıyorsanız yeni bir Fragment oluşturmanız ve içeriğini Oluştur'da bulundurmanız gerekir.
Bir Fragmanda Oluştur'u kullanmak için Fragmanınızın onCreateView()
yaşam döngüsü yönteminde bir ComposeView
döndürün. ComposeView
, birleştirilebilir bir işlev sağlayabileceğiniz bir setContent()
yöntemine sahiptir.
class NewFeatureFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { return ComposeView(requireContext()).apply { setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed) setContent { NewFeatureScreen() } } } }
Daha fazla bilgi için Fragmentlerde ComposeView başlıklı makaleyi inceleyin.
Mevcut ekranlara yeni özellikler ekleme
Eklediğiniz yeni özellik mevcut bir ekranın parçasıysa Oluştur'u mevcut bir Görüntü tabanlı ekranda da kullanabilirsiniz. Bunu yapmak için diğer tüm görünümlerde olduğu gibi görünüm hiyerarşisine bir ComposeView
ekleyin.
Örneğin, bir LinearLayout
öğesine alt görünüm eklemek istediğinizi varsayalım. Bunu XML'de aşağıdaki gibi yapabilirsiniz:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <androidx.compose.ui.platform.ComposeView android:id="@+id/compose_view" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
Görünüm şişirildikten sonra hiyerarşide ComposeView
'e referans verebilir ve setContent()
'ı çağırabilirsiniz.
ComposeView
hakkında daha fazla bilgi edinmek için İşbirlikçi API'ler başlıklı makaleyi inceleyin.
Ortak kullanıcı arayüzü bileşenleri kitaplığı oluşturma
Compose ile özellik oluştururken bir bileşen kitaplığı oluşturduğunuzu kısa sürede fark edersiniz. Ortak kullanıcı arayüzü bileşenleri kitaplığı oluşturmak, uygulamanızda bu bileşenler için tek bir bilgi kaynağına sahip olmanızı ve yeniden kullanılabilirliği desteklemenizi sağlar. Bu durumda, oluşturduğunuz özellikler bu kitaplığa bağlı olabilir. Bu teknik, özellikle Oluştur'da özel bir tasarım sistemi oluşturuyorsanız yararlıdır.
Bu kitaplık, uygulamanızın boyutuna bağlı olarak ayrı bir paket, modül veya kitaplık modülü olabilir. Uygulamanızdaki modülleri düzenleme hakkında daha fazla bilgi için Android uygulaması modülerleştirme kılavuzuna göz atın.
Mevcut özellikleri Oluştur ile değiştirme
Yeni özellikler oluşturmak için Compose'u kullanmanın yanı sıra, Compose'un avantajlarından yararlanmak için uygulamanızdaki mevcut özellikleri kademeli olarak taşımanız gerekir.
Uygulamanızın yalnızca Derle modunda olması, geliştirme sürecinizi hızlandırabilir ve uygulamanızın APK boyutunu ve derleme sürelerini azaltabilir. Daha fazla bilgi edinmek için Derle ve Görüntüle performansını karşılaştırma başlıklı makaleyi inceleyin.
Basit ekranlar
Mevcut özellikleri Compose'a taşırken ilk bakmanız gereken yerler basit ekranlardır. Basit ekranlar; karşılama ekranı, onay ekranı veya kullanıcı arayüzünde gösterilen verilerin nispeten statik olduğu bir ayar ekranı olabilir.
Aşağıdaki XML dosyasını ele alalım:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/title_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/title" android:textAppearance="?attr/textAppearanceHeadline2" /> <TextView android:id="@+id/subtitle_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/subtitle" android:textAppearance="?attr/textAppearanceHeadline6" /> <TextView android:id="@+id/body_text" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" android:text="@string/body" android:textAppearance="?attr/textAppearanceBody1" /> <Button android:id="@+id/confirm_button" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/confirm"/> </LinearLayout>
XML dosyası, Oluştur'da birkaç satırda yeniden yazılabilir:
@Composable fun SimpleScreen() { Column(Modifier.fillMaxSize()) { Text( text = stringResource(R.string.title), style = MaterialTheme.typography.headlineMedium ) Text( text = stringResource(R.string.subtitle), style = MaterialTheme.typography.headlineSmall ) Text( text = stringResource(R.string.body), style = MaterialTheme.typography.bodyMedium ) Spacer(modifier = Modifier.weight(1f)) Button(onClick = { /* Handle click */ }, Modifier.fillMaxWidth()) { Text(text = stringResource(R.string.confirm)) } } }
Karma görünüm ve Oluşturma ekranları
Zaten biraz Oluştur kodu içeren ekranlar da tamamen Oluştur'a taşınmak için iyi adaylardır. Ekranın karmaşıklığına bağlı olarak, ekranı tamamen Compose'a taşıyabilir veya parça parça taşıyabilirsiniz. Ekran, kullanıcı arayüzü hiyerarşisinin alt ağacında Oluştur ile başladıysa ekranın tamamı Oluştur'da olana kadar kullanıcı arayüzü öğelerini taşımaya devam edersiniz. Bu yaklaşıma aşağıdan yukarıya yaklaşım da denir.
Fragment'leri ve Gezinme bileşenini kaldırma
Tüm Fragment'lerinizi kaldırıp ilgili ekran düzeyinde kompozisyonlarla değiştirdikten sonra Gezinme Oluşturma'ya geçebilirsiniz. Ekran düzeyindeki birleştirilebilirler Oluşturma ve Görüntüleme içeriğinin bir karışımını içerebilir ancak Gezinme Oluşturma'nın taşınmasını etkinleştirmek için tüm gezinme hedefleri birleştirilebilir olmalıdır. O zamana kadar, karma Görüntüleme ve Oluşturma kod tabanınızda Fragment tabanlı gezinme bileşenini kullanmaya devam etmeniz gerekir. Daha fazla bilgi için Jetpack Navigation'ı Navigation Compose'a taşıma başlıklı makaleyi inceleyin.
Ek kaynaklar
Mevcut görüntüleme tabanlı uygulamanızı Oluştur'a taşıma hakkında daha fazla bilgi edinmek için aşağıdaki ek kaynaklara göz atın:
- Codelab
- Jetpack Compose'a taşıma: Bu codelab'de, Sunflower uygulamasının bazı bölümlerini Compose'a nasıl taşıyacağınızı öğrenin.
- Blog yayınları
- Sunflower'ı Jetpack Compose'a taşıma: Bu sayfada açıklanan stratejiyi kullanarak Sunflower'ın Compose'a nasıl taşındığını öğrenin.
- Jetpack Compose birlikte çalışabilirliği: Compose'u RecyclerView'de kullanma:
RecyclerView
içinde Compose'u nasıl yüksek performanslı bir şekilde kullanacağınızı öğrenin.
Sonraki adımlar
Mevcut görüntüleme tabanlı uygulamanızı taşımak için uygulayabileceğiniz stratejiyi öğrendiğinize göre, daha fazla bilgi edinmek için İşbirlikçi API'leri inceleyin.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Görünümlerde Oluştur'u kullanma
- Kayan
RecyclerView
öğesini Tembel listeye taşıma