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 Compose bileşenleri eklemenize yardımcı olur. Uygulamanızda Compose'u kullanmaya başlamak için Mevcut bir uygulama için Compose'u ayarlama bölümüne bakın.
Jetpack Compose, daha en baştan View birlikte çalışabilirlik özelliğiyle tasarlandı. 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çmek için uygulamanız tam olarak Compose'da kullanıma sunulana kadar Compose ve Görünümler kod tabanınızda birlikte bulunan artımlı taşıma işlemini öneririz.
Uygulamanızı Compose'a taşımak için şu adımları uygulayın:
- Oluştur ile yeni ekranlar oluşturun.
- Özellikler oluştururken yeniden kullanılabilir öğeleri belirleyin ve ortak kullanıcı arayüzü bileşenlerinden oluşan bir kitaplık oluşturmaya başlayın.
- Mevcut özellikleri tek seferde bir ekranla değiştirin.
Compose ile yeni ekranlar oluşturun
Ekranın tamamını kapsayan yeni özellikler oluşturmak için Oluştur'u kullanmak, Compose'u kullanmanızı sağlayan en iyi yöntemdir. Bu stratejiyle, şirketinizin iş ihtiyaçlarını karşılamaya devam ederken özellik ekleyebilir ve Compose'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. Parçalar ve Gezinme bileşenini kullanıyorsanız yeni bir Parça oluşturmanız ve içeriğini Oluşturma'da tutmanız gerekir.
Bir Fragment'te Oluştur'u kullanmak için Fragment'inizin onCreateView()
yaşam döngüsü yönteminde bir ComposeView
döndürün. ComposeView
, composable işlev sağlayabileceğiniz bir setContent()
yöntemi sunuyor.
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 Görünüm 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
öğesine başvurabilir ve setContent()
yöntemini çağırabilirsiniz.
ComposeView
hakkında daha fazla bilgi edinmek için Birlikte çalışabilirlik API'leri başlıklı makaleyi inceleyin.
Ortak kullanıcı arayüzü bileşenlerinden oluşan bir kitaplık derleme
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.
Uygulamanızın boyutuna bağlı olarak bu kitaplık 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 uygulama modülerleştirme rehberi'ne göz atın.
Mevcut özellikleri Oluştur ile değiştir
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 Compose'da oluşturulmasını sağlamak, geliştirme sürecinizi hızlandırabilir ve uygulamanızın APK boyutunu ve derleme sürelerini azaltabilir. Daha fazla bilgi edinmek için Compose ve Görüntüleme 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ı alın:
<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ı, Compose'da birkaç satır içinde 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ı
Biraz Oluştur kodu içeren bir ekran da tamamen Compose'a geçiş için iyi bir adaydır. Ekranın karmaşıklığına bağlı olarak, ekranı tamamen Oluştur'a taşıyabilir veya tek tek yapabilirsiniz. Ekran, kullanıcı arayüzü hiyerarşisinin bir 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ünüm ve Oluştur kod tabanınızda Parça Tabanlı Gezinme bileşenini kullanmaya devam etmelisiniz. Daha fazla bilgi için Jetpack Gezinmeyi Gezinme Oluşturmaya Taşıma bölümüne bakın.
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 Interop: RecyclerView'da Compose'u kullanma:
Compose'u
RecyclerView
uygulamasında etkili bir şekilde nasıl 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ümler'de Oluşturma özelliğini kullanma
- Kayan
RecyclerView
adlı cihazı geç listeye taşı