2016-03-29 24 views
0

Android platformunda bir RelativeLayout var. Ben resimde şu var yerini değiştirdikten sonraAktarıldıktan sonra Göreli Düzenin çocukları nasıl edinilir?

case DragEvent.ACTION_DRAG_LOCATION: 

       RelativeLayout.LayoutParams ParamV = (LayoutParams) v.getLayoutParams(); 
       int idV = (Integer) v.getId(); 
       if (idV == MainActivity.count) 
        return true; 
       if (idV == 100) { 
        MainActivity.BtDel.setBackgroundResource(R.drawable.rounded); 
        return true; 
       } 
       BtT.setLayoutParams(ParamV); 
       BtT.setId(idV); 
       v.setLayoutParams(ParamB); 
       v.setId(idB); 
       ParamB = ParamV; 
       idB = idV; 
       return true; 

: Görünümler sırası ben Drag onları tarafından görüşlerin konumunu değiştirmek this şu resim (spor, Airplane, Uçan, Seyahat) şöyle görünür: this

Ben Düzeni çocukları almak için şu kodu kullanın:

StringBuilder sb = new StringBuilder(); 
    for (int i = 0; i < layout.getChildCount(); i++) { 
     Button Bt = (Button) layout.getChildAt(i); 
     CharSequence St = Bt.getText(); 
     sb.append(St); 
     if (i < layout.getChildCount() - 1) 
      sb.append(","); 
    } 

Ama sonuç tam olarak ilk resmi gibidir althouth görünümlerin yeri değişmiştir. Sorun nedir? Bunu nasıl çözebilirim?

cevap

0

Bu konum değiştirilmiş olabilir, ancak siparişleri her zaman aynı kalır. Farklı bir düzen kullanmayı düşünebilirsiniz, belki de bir GridLayout.

Ben de bir şey farkettim - bir etkinlikteki bir görünüme asla statik bir referans koyma. Sadece kötü programlama değil, görünüm (ler) iniz asla çöp toplamayacak ve uygulamanızın ciddi hafıza sızıntısı olacaktır.

+0

Daha fazla tercihim yok. Bağıl Düzen kullanmalı ve sorunu çözmeliyim. Emirlerini nasıl değiştirebilirim? – Sohrab

İlgili konular