2012-06-07 66 views
0

我對於開發android應用程序非常新。現在我想要做的是實現四個按鈕,一旦用戶點擊,比方說,在最頂端的按鈕上,另外兩個子按鈕應該出現在點擊按鈕下面,其餘三個按鈕應該自動向下移動。Android移動內容向下

我覺得我的解釋不是百分之百清晰,所以我試圖用一些圖像來說明問題。

現在這裏有四個按鈕:

http://advancedata.ad.funpic.de/First-AGApp.png


而且只要用戶按下按鈕一個,兩個額外的按鈕應該會出現與其他三個按鈕應該向下移動:

http://advancedata.ad.funpic.de/Second-AgApp.png
我會非常感謝任何建議如何實現這一點。

感謝, enne

回答

1

繪製在垂直方向的LinearLayout中所有的按鈕。添加屬性

android:visibility="gone" 

添加到單擊主按鈕時應出現的按鈕。然後你就可以顯示與行的主要按鈕的OnClickListener這些按鈕:

button.setVisibility(View.VISIBLE); 

,其中按鈕是參考代碼佈局。

Button button = (Button) findViewById (R.id.your_button_id); 

編輯:

將動畫添加到這個過程中,你要滑上/下出現的新的按鈕和下面的按鈕。 (將視圖分組爲佈局,以便應用動畫更加容易)。

這裏有兩個XML文件在您的RES /動畫文件夾中創建:

slide_down.xml

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
android:fromYDelta="-50" android:toYDelta="0" 
android:duration="300" /> 

slide_up.xml

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
android:fromYDelta="0" android:toYDelta="-50" 
android:duration="300" /> 

在你的代碼創建動畫附:

Animation slideDown = AnimationUtils.loadAnimation(this, R.anim.slide_down); 

並將其與應用到按鈕:

secondaryButton.startAnimation(slideDown); 

當向上滑動,您需要設置的知名度,「水漲船高」的動畫結束之後,而不是之前。爲了做到這一點,你需要設置動畫監聽器並隱藏onAnimationEnd中的按鈕:

slideUp.setAnimationListener(new AnimationListener() { 

    @Override 
    public void onAnimationEnd(Animation animation) { 
     secondaryButton.setVisibility(View.GONE); 
    } 

    @Override 
    public void onAnimationRepeat(Animation animation) {} 

    @Override 
    public void onAnimationStart(Animation animation) {} 

}); 
+1

好吧,非常好,謝謝米格爾。最後一個問題:難以實現隱藏的按鈕不會突然彈出,而是會滑落。我的意思是這樣的,只是按鈕:http:// www。webdesignerwall.com/demo/jquery/simple-slide-panel.html – enne87

+1

我添加了動畫的代碼。我希望它有幫助。 –

+0

非常好,謝謝你的幫助miguel :) – enne87