2015-08-06 7 views
1

Я пытаюсь сделать чат с 2 TextViews и 1 ImageView на Tabelrow. Я использую relativeLayout для их упорядочивания, но когда я запускаю приложение, все помещается в верхнем правом углу друг над другом ... Я пробирался по интернету, но не мог найти ничего, чтобы помочь мне. Может ли кто-нибудь помочь? возможно, дайте мне какие-то указания?relativelayout not rendering правильно

 TableRow trr = new TableRow(this); 
     trr.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT, 1.0f)); 
     tl.addView(trr); 

     RelativeLayout rl = new RelativeLayout(this); 
     TableRow.LayoutParams trrllp = new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT, 10); 
     trrllp.gravity= Gravity.CENTER; 
     rl.setLayoutParams(trrllp); 
     trr.addView(rl); 

     ImageView ivSvart = new ImageView(this); 

     TextView tvchat = new TextView(this); 
     tvchat.setText(ChatH.get(i)[2]); 

     String s = ChatH.get(i)[1]; 
     Long l = Long.valueOf(s); 
     time = new Date(l*1000); 

     TextView tvTimeDate = new TextView(this); 
     tvTimeDate.setText(time + ", " + navn); 


     if(b_ID.equals(MinID)){ 
      RelativeLayout.LayoutParams rltvlp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT-70, RelativeLayout.LayoutParams.WRAP_CONTENT); 
      rltvlp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
      rltvlp.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
      rltvlp.setMargins(0, 5, 100, 0); 
      tvchat.setLayoutParams(rltvlp); 
      tvchat.setTextColor(0xFFFEFEFE); 
      tvchat.setTextSize(18); 
      rl.addView(tvchat); 

      RelativeLayout.LayoutParams rlivlp = new RelativeLayout.LayoutParams(80,80); 
      rlivlp.addRule(RelativeLayout.ABOVE, tvTimeDate.getId()); 
      rlivlp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
      rlivlp.setMargins(0, 0, 10, 10); 
      ivSvart.setLayoutParams(rlivlp); 
      rl.addView(ivSvart); 

      RelativeLayout.LayoutParams rltvlp2 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
      rltvlp2.setMargins(0, 5, 15, 0); 
      rltvlp2.addRule(RelativeLayout.BELOW, tvchat.getId()); 
      rltvlp2.addRule(RelativeLayout.LEFT_OF, ivSvart.getId()); 
      tvTimeDate.setLayoutParams(rltvlp2); 
      rl.addView(tvTimeDate); 

     } 

Я пробовал несколько способов, но пока не удалось.

ответ

1

Удостоверьтесь, что ваш родительский макет является относительной маской, в которой вы программный союзник. Создание дочерних относительных макетов. Это сработает.

+0

Спасибо, что ответили. Но это не сработало для меня. Должен ли основной родитель быть относительным или просто родителем TabelLayout? – user3762929