2016-06-09 2 views
7

В моем приложении у меня есть SnackBar, который появляется при нажатии кнопки.SnackBar появляется анимация

Snackbar.make(v, "Enter valid data", Snackbar.LENGTH_SHORT).show(); 

В приведенном выше коде v представляет собой представление, полученное в событии onClick для FloatingActionButton.

В стандартном SnackBar он появляется со скользящей анимацией. В моем приложении анимация не отображается. Он просто появляется без анимации. Любой способ заставить анимацию показать?

Вот файл макет

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout    
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:id="@+id/loginRootView" 
android:layout_height="match_parent" 
android:background="@drawable/back_pattern"> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/loginToolbar" 
     android:layout_width="match_parent" 
     android:layout_height="56dp" 
     android:background="@color/primary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" /> 


</android.support.design.widget.AppBarLayout> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.v7.widget.CardView 
     android:id="@+id/loginCard" 
     android:layout_width="match_parent" 
     android:layout_height="290dp" 
     android:layout_centerInParent="true" 
     android:layout_marginBottom="5dp" 
     android:layout_marginEnd="5dp" 
     android:layout_marginLeft="5dp" 
     android:layout_marginRight="5dp" 
     android:layout_marginStart="5dp" 
     android:layout_marginTop="5dp" 
     app:cardCornerRadius="3dp" 
     app:cardElevation="4dp" 
     app:cardUseCompatPadding="true"> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <android.support.design.widget.TextInputLayout 
       android:id="@+id/loginNumber" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_centerHorizontal="true" 
       android:layout_marginRight="80dp" 
       android:layout_marginTop="40dp"> 

       <EditText 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:hint="Mobile Number" 
        android:inputType="phone" 
        android:textColor="#666666" /> 
      </android.support.design.widget.TextInputLayout> 

      <android.support.design.widget.TextInputLayout 
       android:id="@+id/loginPassword" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/loginNumber" 
       android:layout_centerInParent="true" 
       android:layout_marginRight="80dp" 
       android:layout_marginTop="20dp"> 

       <EditText 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:hint="Password" 
        android:inputType="textPassword" 
        android:textColor="#666666" /> 
      </android.support.design.widget.TextInputLayout> 

      <TextView 
       android:id="@+id/loginForgotPassword" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignLeft="@+id/loginPassword" 
       android:layout_below="@+id/loginPassword" 
       android:layout_marginLeft="5dp" 
       android:layout_marginTop="15dp" 
       android:text="Forgot Password?" /> 

     </RelativeLayout> 

    </android.support.v7.widget.CardView> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/loginButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/loginCard" 
     android:layout_marginRight="20dp" 
     android:layout_marginTop="-43dp" 
     android:background="#12af1c" 
     android:src="@drawable/ic_done_white_36dp" /> 

    <TextView 
     android:id="@+id/loginSignUpLink" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/loginCard" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="20dp" 
     android:text="New user? Register here." 
     android:textSize="18sp" /> 

</RelativeLayout> 
</android.support.design.widget.CoordinatorLayout> 
+0

Возможный дубликат [Заставка и другие анимации перестали работать на некоторых устройствах Android] (http://stackoverflow.com/questions/37221914/snackbar-and-other-animations-stopped-working-on-some-android-devices) – Amagi82

ответ

19

я в конечном итоге работаю в закусочной моей анимации не работает также. Оказалось, что у меня было другое приложение, в котором были включены опции доступности, которые отключают определенные анимации, такие как анимация Snackbar.

Посмотреть сообщение # 5 Крис: https://code.google.com/p/android/issues/detail?id=206416

Проверка AccessibilityManager.isEnabled(), который возвращает истину, когда любая служба доступности включена. Я только что проверил различные уровни API . Снекбар работает нормально без службы доступности. включен.

В моем случае у меня была установлена ​​и включена GIF Keyboard в качестве опции accessbility. Переход в Настройки -> Доступность и отключение GIF Keyboard заставили анимацию начать появляться в моем приложении.

+9

Какая заторможенная функция? Ах .. Google – VSG24

+1

Как я могу заставить это в таких случаях? Я заметил, что snackbar приложения Inbox работает с нужной анимацией, даже с включенными настройками доступности. Пока у моего приложения нет: | – Cesarsk

+0

@Cesarsk Я могу только догадываться, что они используют обычную закусочную. – egfconnor

0

до версии дизайна поддержки для 23.4.0

compile 'com.android.support:design:23.4.0' 
Смежные вопросы