2017-10-11 112 views
0

我有一個BottomSheetDialogFragment,其中有兩個按鈕,當我點擊任何按鈕dismiss()方法被調用。有沒有一種方法可以爲BottomSheetDialogFragment設置動畫效果。我想讓它顯示一個緩慢的滑動動畫,持續時間爲1000毫秒。如何添加動畫BottomSheetDialogFragment

示例代碼

signin.findViewById(R.id.signin_button_using).setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      callback.onClickSignInEmail(); 
      dismiss(); 
     } 
    }) 
+0

請注意。參考這個https://stackoverflow.com/questions/19765938/show-and-hide-a-view-with-a-slide-up-down-animation –

+0

@pritesh onClickSignInEmail()帶我們到一個新的片段。如果你理解正確** BottomSheetDialogFragment **它使用dismiss()來結束底部對話框和你沒有幫助的文章 – Vijay

回答

0

在你的片段,該片段被擴展爲BottomSheetDialogFragment,嘗試重寫這樣

@Override 
public void onActivityCreated(Bundle arg0) { 
    super.onActivityCreated(arg0); 
    getDialog().getWindow() 
    .getAttributes().windowAnimations = R.style.DialogAnimation; 
} 

DialogAnimation這種方法可以在風格來定義這樣

<style name="DialogAnimation"> 
    <item name="android:windowEnterAnimation">@anim/slide_up</item> 
    <item name="android:windowExitAnimation">@anim/slide_down</item> 
</style> 

此外,slide_up和slide_down將是您的實施n所需的動畫。你可以在網上找到大量的例子。

+0

我已經添加了slide_up和向下動畫。但似乎持續時間不起作用。 <?XML版本= 「1.0」 編碼= 「UTF-8」>我還添加的1500毫秒 ** ** slide_down.xml '持續時間 <翻譯的xmlns:機器人=「HTTP: //schemas.android.com/apk/res/android「 android:duration =」500「 android:fromYDelta =」100%p「 android:toYDelta =」0%p「/>' – Vijay

+0

樣本幻燈片鏈接動畫[鏈接](https://stackoverflow.com/questions/19765938/show-and-hide-a-view-with-a-slide-up-down-animation?noredirect=1&lq=1) – Vijay