2016-03-29 3 views
0

У меня есть RelativeLayout на платформе Android. Порядок представлений выглядит следующее изображение (спорт, самолет, полет, путешествие) this меняет расположение взглядов на перетаскивайте:Как получить детей от относительной компоновки после их перетаскивания?

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; 

После изменения места расположения, я следующая картины: this

Я использую следующий код, чтобы получить ребенок Layout:

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(","); 
    } 

Но результат так же, как первую картинка В любом случае местоположение точек зрения изменяется. В чем проблема? Как я могу это решить?

ответ

0

Местоположение может быть изменено, но их заказ всегда будет оставаться неизменным. Вам следует рассмотреть возможность использования другого макета, возможно, GridLayout.

Я тоже что-то заметил - никогда не ставил статическую ссылку на представление в действии. Мало того, что это плохое программирование, ваши взгляды никогда не будут собраны в мусор, и ваше приложение будет иметь серьезную утечку памяти.

+0

У меня больше нет выбора. Я должен использовать Relative Layout и единственную проблему. Как я могу изменить свои заказы? – Sohrab

Смежные вопросы