Kullanıcı soldan sağa kaydırarak Wear OS etkinliğinden çıkabilir. Uygulamada yatay kaydırma varsa kullanıcı içeriğin kenarına gidip soldan sağa doğru kaydırarak çıkar. Güç düğmesine basıldığında da kullanıcı kadrana döner.
Kapatmak için kaydırma hareketi
Kullanıcılar geçerli ekranı kapatmak için soldan sağa kaydırır. Bu nedenle, aşağıdakileri kullanmanızı öneririz:
- Dikey düzenler
- İçerik kapsayıcıları
Uygulamanızın yatay kaydırma hareketleri içermemesini de öneririz.
Etkinliği kapatma
Etkinlikler, kapatmak için kaydırmayı otomatik olarak destekler. Bir etkinliği soldan sağa kaydırdığınızda etkinlik kapatılır ve uygulama geri yığında aşağı doğru ilerler.
Parçayı kapat
Parçalar halinde hızlıca kaydırarak kapatma özelliğini desteklemek için parça içeren görünümü
SwipeDismissFrameLayout
sınıfında sarmalamanız gerekir. Parça kullanıp kullanmayacağınıza karar verirken bunu dikkate alın. SwipeDismissFrameLayout
sınıfını aşağıdaki örnekte gösterildiği gibi kullanın:
Kotlin
class SwipeDismissFragment : Fragment() { private val callback = object : SwipeDismissFrameLayout.Callback() { override fun onSwipeStarted(layout: SwipeDismissFrameLayout) { // Optional } override fun onSwipeCanceled(layout: SwipeDismissFrameLayout) { // Optional } override fun onDismissed(layout: SwipeDismissFrameLayout) { // Code here for custom behavior, such as going up the // back stack and destroying the fragment but staying in the app. } } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View = SwipeDismissFrameLayout(activity).apply { // If the fragment should fill the screen (optional), then in the layout file, // in the androidx.wear.widget.SwipeDismissFrameLayout element, // set the android:layout_width and android:layout_height attributes // to "match_parent". inflater.inflate( R.layout.swipe_dismiss_frame_layout, this, false ).also { inflatedView -> addView(inflatedView) } addCallback(callback) } }
Java
public class SwipeDismissFragment extends Fragment { private final Callback callback = new Callback() { @Override public void onSwipeStart() { // Optional } @Override public void onSwipeCancelled() { // Optional } @Override public void onDismissed(SwipeDismissFrameLayout layout) { // Code here for custom behavior, such as going up the // back stack and destroying the fragment but staying in the app. } }; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { SwipeDismissFrameLayout swipeLayout = new SwipeDismissFrameLayout(getActivity()); // If the fragment should fill the screen (optional), then in the layout file, // in the androidx.wear.widget.SwipeDismissFrameLayout element, // set the android:layout_width and android:layout_height attributes // to "match_parent". View inflatedView = inflater.inflate(R.layout.swipe_dismiss_frame_layout, swipeLayout, false); swipeLayout.addView(inflatedView); swipeLayout.addCallback(callback); return swipeLayout; } }
Not: Etkinliğinizde parçalar kullandığınızda hızlıca kaydırarak kapatma hareketini desteklemek için FragmentManager.replace
yerine FragmentManager.add
kullanın.
Bu, önceki parçanızın kaydırılırken üst parçanın altında oluşturulmasını sağlar.
Yatay kaydırılabilir görünümler
Yatay kaydırmayı destekleyen bir harita içeren bir görünümde olduğu gibi bazı durumlarda, kullanıcı arayüzü yatay kaydırmayı önleyemez. Bu senaryoda iki seçenek vardır:
- Arka plan grubu kısaysa kullanıcı, uygulamayı kapatıp güç düğmesine basarak kadran ana ekranına geri dönebilir.
- Kullanıcının geri yığında aşağı inmesini isterseniz görünümü, kenar kaydırmayı destekleyen bir
SwipeDismissFrameLayout
nesnesi için sarmalayabilirsiniz. Görünüm veya alt öğelericanScrollHorizontally()
çağrısındantrue
döndürdüğünde kenardan kaydırma etkinleştirilir. Kenardan kaydırma, kullanıcının görünümün herhangi bir yeri yerine ekranın en sol% 10'luk kısmından kaydırarak görünümü kapatmasına olanak tanır.
Aşağıdaki örneklerde, bir SwipeDismissFrameLayout
nesnesinde görünümün nasıl
sarmalanacağı gösterilmektedir:
<androidx.wear.widget.SwipeDismissFrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/swipe_dismiss_root" > <TextView android:id="@+id/test_content" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="Swipe me to dismiss me." /> </androidx.wear.widget.SwipeDismissFrameLayout>
Kotlin
activity?.findViewById<SwipeDismissFrameLayout>(R.id.swipe_dismiss_root)?.apply { addCallback(object : SwipeDismissFrameLayout.Callback() { override fun onDismissed(layout: SwipeDismissFrameLayout) { layout.visibility = View.GONE } }) }
Java
SwipeDismissFrameLayout testLayout = (SwipeDismissFrameLayout) activity.findViewById(R.id.swipe_dismiss_root); testLayout.addCallback(new SwipeDismissFrameLayout.Callback() { @Override public void onDismissed(SwipeDismissFrameLayout layout) { layout.setVisibility(View.GONE); } } );
Önerilmez: Kapatmak için kaydırma özelliğini devre dışı bırakın
Kullanıcılar kaydırma hareketiyle herhangi bir ekranı kapatmayı beklediği için genellikle hızlıca kaydırarak kapatma özelliğini devre dışı bırakmanızı önermeyiz. İstisnai bir durumda, aşağıdaki kod örneğinde gösterildiği gibi, varsayılan temayı bir
stil kaynağında genişletebilir ve android:windowSwipeToDismiss
özelliğini false
olarak ayarlayabilirsiniz:
<resources> <style name="AppTheme" parent="@android:style/Theme.DeviceDefault"> <item name="android:windowSwipeToDismiss">false</item> </style> </resources>
Ardından, uygulamanızı ilk kez kullandıklarında güç düğmesine basarak uygulamadan çıkabileceklerini kullanıcılara bildirebilirsiniz.
Güç düğmesiyle kapatma
Fiziksel güç düğmesine basıldığında, bir güç tuşu etkinliği gönderilir. Bu nedenle, güç düğmesini geri düğmesi olarak veya genel olarak gezinme için kullanamazsınız.
Güç düğmesine basıldığında kullanıcıyı saat yüzü ana ekranına döndürür. İki istisna vardır:
- Kullanıcı, el yazısı tanıma ekranı gibi bir Giriş Yöntemi Düzenleyici'de (IME) bulunuyorsa düğmeye basıldığında IME kapatılır ve kullanıcı uygulamaya döndürülür.
- Kullanıcı kadrandaysa donanım düğmesine basıldığında uygulama başlatıcı açılır.
Güç düğmesine basıldığında Activity
sınıfının
isFinishing()
yönteminin true
döndürmediğini ve önemli etkinliğe müdahale edemeyeceğinizi unutmayın.
Daha fazla bilgi için Navigasyon bölümünü inceleyin.