2012-04-29 2 views
0

Я использую следующий код. Код должен показывать значения значений в строке, например, если values[] содержит {A,B,C,D,E,F} Он должен показывать A B C D E F В relative layout. Если я не использую LayoutParams pramas, тогда все textViews добавляются друг к другу. Как я могу сделать их добавить в левой части друг с другомДинамическое добавление TextView в RelativeLayout

for (int i = 0 ; i < values.length ; i++) 
     { 
     TextView textView = new TextView(this); 
     textView.setText(values[i].toString()); 
     textView.setTextColor(Color.BLACK); 
     textView.setClickable(true); 
     textView.setId(i); 
     textView.setBackgroundDrawable(d); 
     textView.setTextSize(24); 
     LayoutParams param = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 
     params.setMargins(5, 50, 0, 0); 
     if (i>0) 
     params.addRule(RelativeLayout.RIGHT_OF, i); 
     textView.setLayoutParams(param); 
     wordsLayout.addView(textView,params); 
     } 
    } 

Проблема заключается в том, когда я не использовать wordsLayout.addView(textView,params); ничего не отображается

+0

Мне очень жаль, но вы не хотите 'RIGHT_OF'? или вы хотите, чтобы '{A, B, C, D, E, F}' отображались как 'F E D C B A'? – JRaymond

+0

Извините, я изменил его вправо, но когда я использую параметры относительной компоновки, ничего не отображается. Это проблема. Проблема отредактирована –

+0

Вы объявляете два набора LayoutParams в своем фактическом коде? вы должны использовать только один, поэтому не объявляйте param и не применяйте его к textView. Может быть, этот параметр переписывает параметры, когда android добавляет представление в группу просмотра. – JRaymond

ответ

1

U R РАБОЧИЙ КОД ...

LinearLayout wordsLayout = new LinearLayout(this); 
     for (int i = 0 ; i < 5 ; i++) 
     { 
      TextView textView = new TextView(this); 
      textView.setText(String.valueOf(i)); 
      textView.setTextColor(Color.RED); 
      textView.setClickable(true); 
      textView.setId(i); 
      textView.setBackgroundDrawable(d); 
      textView.setTextSize(24); 
      LayoutParams param = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
      LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 
      params.setMargins(5, 50, 0, 0); 
      if (i>0) 
       params.addRule(RelativeLayout.RIGHT_OF, i); 
      textView.setLayoutParams(param); 
      wordsLayout.addView(textView,params); 
     } 

     setContentView(wordsLayout); 
0

Я рекомендовал бы положить каждый TextView внутри своей собственной ViewGroup, который оборачивается вокруг содержания TextViews размер. У вас есть все группы просмотра, расположенные рядом друг с другом так, как вы хотите, чтобы все видимые текстовые просмотры. И сделайте внутренние текстовые элементы VISIDLE и GONE, однако вам нужно их отобразить. Это самый грязный способ сделать это, на мой взгляд, и обеспечивает порядок ваших текстовых просмотров.

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