2016-04-22 7 views
0

Wie Sie Panel nach unten schieben, bis das innere Layout des Panels den unteren Bildschirmrand erreicht. Stoppen Sie dann die Animation. Alle Panel-Layouts sind dynamische Höhe. Statische Werte dürfen nicht verwendet werden. Ich benutze:Android-Folie LineareLayout bis innere Reichweite unten

public void slideDown(Context context, LinearLayout ln){ 
     Animation slide_down = AnimationUtils.loadAnimation(context, R.anim.slide_down); 
     ln.startAnimation(slide_down); 
    } 

und

slideDown(getContext(), myLayout); 

Antwort

0

Wenn ich Ihr Problem richtig verstehe, Sie eine Linearlayout auf den unteren Rand des Bildschirms verschieben wollen, und die Animation zu stoppen, wenn der Boden des lineaLayout " berührt "den unteren Rand des Bildschirms. Hier ist, wie ich es mache:

public void slideDown (View movableView,View rootView){ 
    //rootView is the Layout placed as root in your xml 
    float screenBottom = rootView.getBottom()/2; //real bottom of the screen 
    float viewHeight = movableView.getHeight(); 
    movableView.animate().translationYBy(screenBottom - viewHeight).setDuration(1000).start(); 
} 
+0

Nein, in linearLayout habe ich ein anderes Layout mit Text. Ich möchte, dass die Animation aufhört, wenn das innere Layout unten auf den Bildschirm trifft – TeodorKolev

Verwandte Themen