2011-10-08 25 views
20

iOS'tan geliyorum, başka bir görünüm altında bir görünümü kolayca görebiliyorum. Ben Android'de equiv anlamaya çalışıyorum. Tıklandığında görüntü hiyerarşisindeki bir görüntüyü birkaç noktaya taşımak istiyorum. Bir şey gibi:Android'de görünümünüzü gözden geçirme - bir düzenden diğerine geçiş yapın

public boolean onTouchEvent(MotionEvent event) { 

    int action = event.getAction(); 

    //Tile touchBegan 
    if(action == MotionEvent.ACTION_DOWN) { 
     RelativeLayout rl = (RelativeLayout)(getParent().getParent()); 
     rl.addView(this); 
    } 
} 

Bu tabii basitleştirilmiş bir örnektir .. ama sadece yeniden parçalanarak ana nasıl başka düzen altında bir görünüm anlamaya çalışıyorum. Ben inanılmaz derecede karmaşık görünüyor çevresinde arama Bu örneği .. benim eski iOS deneyimini Hatırlarsanız doğru o eski ebeveyn başka birine eklemek otomatik var manzarayı kaldırır

http://blahti.wordpress.com/2011/02/10/moving-views-part-3/

+0

: Eğer aynı pozisyonda tutmak gerekiyorsa, benim kod örneği yardımcı olacak aşağıdaki cevap mümkündür. – Fattie

cevap

31

(Yanlış olabilir bulundu ;-). İşte

Eğer robot üzerinde aynı şeyi gibi olacaktır: burada Googling herkes için

ViewGroup parent = (ViewGroup) yourChildView.getParent();  

if (parent != null) { 
    // detach the child from parent or you get an exception if you try 
    // to add it to another one 
    parent.removeView(yourChildView); 
} 

// you might have to update the layout parameters on your child 
// for example if your child was attached to a RelativeLayout before 
// and you add it to a LinearLayout now 
// this seems very odd coming from iOS but iOS doesn't support layout 
// management, so... 
LinearLayout.LayoutParams params = new LinearLayout.LayoutP... 
yourChildView.setLayoutParams(params); 

yourNewParent.addView(yourChildView); 
+0

Yardımın için teşekkürler, Bu benim için çalışıyor! Çok kolay görünüyor, bunu denedim sandım. Sanırım ebeveyni benim RelativeLayout düzenim türüne çeviriyordum ... belki de bu benim sorunumdu. – Daniel

+1

Şaşkın iOS'lar için harika bir açıklama! Teşekkürler! – Fattie

7
((ViewGroup)view.getParent()).removeView(view); 
newContainer.addView(view) 
İlgili konular