2016-06-09 47 views
7

在我的应用程序中,我有一个按下按钮时出现的SnackBar。SnackBar出现动画

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

在上面的代码中,v是在FloatingActionButton的onClick事件中获得的视图。

在默认的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

[Snackbar和其他动画在某些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(),当启用 任何辅助服务,它返回true。我刚刚检查各种API 级别Snackbar工作正常,但没有启用辅助功能服务 。

在我的情况下,我安装了GIF键盘并将其作为可访问性选项启用。进入设置 - >辅助功能并关闭GIF键盘使动画开始出现在我的应用程序中。

+9

什么样的延迟功能是?啊.. Google – VSG24

+1

在这种情况下,我该如何强制?我注意到,即使启用了辅助功能设置,Inbox应用程序的快餐栏也可以使用正确的动画。虽然我的应用程序没有:| – Cesarsk

+0

@Cesarsk我只能猜测他们使用自定义Snackbar。 – egfconnor

0

最多的支持设计的版本23.4.0

compile 'com.android.support:design:23.4.0'