2016-09-07 43 views
0

當單擊一個Button時,我想一次隱藏兩個視圖(一個Viewpager和一個LinearLayout)。我嘗試使用android:animateLayoutChanges="true",但它總是會首先隱藏Viewpager,然後是LinearLayout,這看起來不太好。一次對兩個視圖的Android動畫可見性更改

如何在同一時間手動隱藏兩個視圖?我見過的例子是這樣一個人視圖的可見性發生變化:

myImageView.animate() 
     .translationY(myImageView.getHeight()) 
     .alpha(0.0f) 
     .setDuration(300) 
     .setListener(new AnimatorListenerAdapter() { 
      @Override 
      public void onAnimationEnd(Animator animation) { 
       super.onAnimationEnd(animation); 
       myImageView.setVisibility(View.GONE); 

      } 
     }); 

有沒有辦法對不同Views的鏈上的兩個動畫()調用同時觸發他們?

編輯:這是我的佈局文件,該Views我想隱藏在同一時間都Viewpager id爲viewpager和LinearLayout與ID ll_indicators:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:animateLayoutChanges="true" 
    android:fitsSystemWindows="true" 
    android:orientation="vertical"> 

    <include 
     android:id="@+id/toolbar" 
     layout="@layout/toolbar" /> 

    <include 
     android:id="@+id/tv_statusbar" 
     layout="@layout/layout_statusbar" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/statusbar_height" /> 

    <TextView 
     android:id="@+id/tv_title" 
     android:layout_width="match_parent" 
     android:textColor="@color/black" 
     android:text="@string/some_text" 
     android:padding="10dp" 
     android:textSize="@dimen/fontSizeMedium" 
     android:gravity="center_horizontal" 
     android:layout_height="wrap_content" /> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

    <LinearLayout 
     android:id="@+id/ll_indicators" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:orientation="horizontal"> 
     <ImageView 
      android:id="@+id/intro_indicator_0" 
      android:layout_width="8dp" 
      android:layout_height="8dp" 
      android:layout_marginEnd="@dimen/activity_margin_half" 
      android:layout_marginRight="@dimen/activity_margin_half" 
      android:background="@drawable/indicator_unselected" /> 

     <ImageView 
      android:id="@+id/intro_indicator_1" 
      android:layout_width="8dp" 
      android:layout_height="8dp" 
      android:layout_marginEnd="@dimen/activity_margin_half" 
      android:layout_marginRight="@dimen/activity_margin_half" 
      android:background="@drawable/indicator_unselected" /> 
    </LinearLayout> 

    <include 
     android:id="@+id/ll_login" 
     android:layout_weight="0" 
     layout="@layout/item_login" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
    </include> 
</LinearLayout> 

回答

1

由於您沒有發佈您的佈局,如果您可以將ViewPager和LinearLayout放置在一個佈局中(例如在RelativeLayout中),那麼您可以爲該佈局設置動畫效果。

+0

我已更新我的問題,ViewPager和LinearLayout是相同佈局的一部分。 – Eve

+0

那麼,然後把它們放在一個裏面並且給它加上動畫。讓我知道你是否希望我爲你發佈代碼。 –

+0

這工作正常,謝謝 – Eve

0
if(A.isShowing && B.isSowing(
A.hide 
b.hide 
) 

也許這?

0

您可以只動畫父的LinearLayout,所有意見內將其動畫:在同時在兩個瀏覽

yourLinearLayout.animate().setDuration(300).alpha(0). ... 

,或者致電動畫():

yourImageView.animate().alpha(0). ... 
    yourLinearLayout.animate().alpha(0). ... 

它會是什麼樣子他們正在同時消失。

相關問題