2016-01-04 60 views
1

我想做的事情,但不知道如何...這將是一個按鈕,從屏幕底部滑到某個位置,由某件事引發。非常類似於小吃店展示的方式,區別在於它保持在原位而不是消失,並具有「可點擊」的特性。這不是可從底部拖動的面板,而是由某種東西自動滑動的面板。製作「從底部滑動」按鈕(類似於快餐欄)(Android)

我該如何做到這一點?

+0

看看翻譯動畫的例子。它用於在指定的時間內將某個視圖從某個點移動到另一個點。 – oiyio

回答

2

聽起來像沿着y軸的一個相當直接的動畫,其起始值與屏幕高度相匹配(使其僅顯示在屏幕外),無論最終值是什麼。下面的代碼來自內存,但它應該工作。

要抓取屏幕高度:

int getScreenHeight() { 

    DisplayMetrics displaymetrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
    return displaymetrics.heightPixels; 

} 

並以動畫的視圖(在這種情況下,對於總的屏幕高度的80%):由下

void animateOnScreen(View view) { 

    final int screenHeight = getScreenHeight(); 
    ObjectAnimator animator = ObjectAnimator.ofFloat(view, "y", screenHeight, (screenHeight * 0.8F)); 
    animator.setInterpolator(new DecelerateInterpolator()); 
    animator.start(); 

} 
+0

我剛剛回復說...我愛你... –

+0

哦,順便說一句...我有一個列表視圖在視圖滑動的佈局,你知道我怎麼可以創造額外的空間滑動面板推動列表視圖,因此不會隱藏列表中的最後一個項目/項目? –

+0

@LuchitoMarcano不客氣!至於你的第二個問題,我想可以想象答案在於使用'CoordinatorLayout' - 如果在這種類型的佈局中包裝佈局'xml'文件不會自動隨機播放視圖以響應動畫,[Snackbar源代碼](https://github.com/android/platform_frameworks_support/blob/master/design/src/android/support/design/widget/Snackbar.java)可能會提供一些進一步的想法。 – PPartisan

0

滑動視圖距離:

view.animate().translationY(distance); 

您可以查看後滑回原來的位置是這樣的:

view.animate().translationY(0);