2011-06-13 27 views
9

Aşağıdaki gibi bir düzen var. Şu anda, arka tuşa basıldığında, kırmızı çizgisel düzenin görünürlüğü gitmeye ayarlanmıştır. Ancak, bunun yerine sayfanın yukarı kaydırılmasını istiyorum. Bunu nasıl yapardım?Android: Düzen ekrandan "kaydırılıyor"?

my layout

+1

Neden bu amaçla animasyon kullanmayı denemiyorsunuz? Sanırım, – Nikki

+1

Kaydırma için tanımlanmış başka bir yol veya yöntem olabileceğini düşünmüyorum. Bunu gerçekleştirmek için animasyonu nasıl kullanırım? Detaylandırır mısınız lütfen? – Skizit

+0

Bir düzen slayt ve başka bir düzen görünür gibi gelmelidir ....... Ben doğru anlıyorum – Nikki

cevap

35

Sen animasyonlar kullanmak gerekir.

En

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

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate android:fromYDelta="0%" android:toYDelta="-100%" android:duration="600"/> 
</set> 
Ardından

etkinlik böyle kendisine bir görünüm elde ve bir animasyon uygulamak Top

Out: burada/çıkış animasyonlar üst olan Bu edilir Animasyon yazın.

mSlideInTop = AnimationUtils.loadAnimation(this, R.anim.slide_in_top); 
     mSlideOutTop = AnimationUtils.loadAnimation(this, R.anim.slide_out_top); 

ve bu kodla diyoruz: Burada

header.startAnimation(mSlideOutTop); 
     header.setVisibility(View.INVISIBLE); 

başlık görüşlerimi sarma bir LinearLayout olduğunu. Aynı şeyi slayt yapmak istiyorsanız, slayttaki animasyonu ekleyin ve görünümü görünür hale getirin.

+0

mSlideInTop nerede tanımlanır? Ve bunu onCreate() yönteminin altına koymalı mıyım? Hangi XML dosyasını içeri/dışarı kaydırması gerektiğini nerede tanımlarım? – Si8

+0

İhtiyaçlarınıza bağlıdır. Genellikle animasyon nesnesini, gerçekten başlatmadan hemen önce oluşturursunuz, ancak sanırım, onCreate içindeki etkinlikte başlatılan bir alan olabilir. XML res/anim klasörü altındadır. – DArkO

+0

dozu, uygulamamda çalışmıyor. zirvede sadece hayal kırıklığına uğradı ve animasyon yok. Yaptığım şey: 1: titleHideAnimation = AnimationUtils.loadAnimation (bu, R.anim.anim_top_out_slow); 2: titleLayout.startAnimation (titleHideAnimation); 3: titleLayout.setVisibility (View.GONE); – tainy

İlgili konular