Как программно добавить 2 текстовых изображения в линейной компоновке

Введите описание изображения здесь

Всем привет,

Я получаю следующие поля «Имя» и «Skoda» от API. Будет количество таких элементов, как это. По дизайну я должен показать их как на следующем рисунке.

Итак, я решил создать два текстовых файла программно в линейном макете с именем «childLayout», как показано ниже.

-- RelativeLayout -- Linear Layout -- TextView Textview -- -- Linear Layout -- Linear Layout -- TextView Textview -- -- Linear Layout -- Linear Layout -- TextView Textview -- -- Linear Layout --RelativeLayout 

Но я не получаю желаемого результата. Пожалуйста, помогите мне решить эту проблему.

Вот код:

 TextView mType; TextView mValue; for (int i = 0; i < getDetailedDescAL.size(); i++) { LinearLayout childLayout = new LinearLayout( DetailedCategories.this); LinearLayout.LayoutParams linearParams = new LinearLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); childLayout.setLayoutParams(linearParams); mType = new TextView(DetailedCategories.this); mValue = new TextView(DetailedCategories.this); mType.setLayoutParams(new TableLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f)); mValue.setLayoutParams(new TableLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f)); mType.setTextSize(17); mType.setPadding(5, 3, 0, 3); mType.setTypeface(Typeface.DEFAULT_BOLD); mType.setGravity(Gravity.LEFT | Gravity.CENTER); mValue.setTextSize(16); mValue.setPadding(5, 3, 0, 3); mValue.setTypeface(null, Typeface.ITALIC); mValue.setGravity(Gravity.LEFT | Gravity.CENTER); mType.setText(getDetailedDescAL.get(i).getmPropertyType()); mValue.setText(getDetailedDescAL.get(i).getmPropertyValue()); childLayout.addView(mValue, 0); childLayout.addView(mType, 0); RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); relativeParams.addRule(RelativeLayout.BELOW); Details.addView(childLayout, relativeParams); // Details is the relative layout declared in XML } 

Выход:

Введите описание изображения здесь

Похоже, что текстовые просмотры переопределяют. Как это решить.

Замените RelativeLayout для LinearLayout и добавьте к нему все TextView's . Не забывайте android:orientation="vertical" в LinearLayout

 for(int j=0;j<30;j++) { LinearLayout childLayout = new LinearLayout( MainActivity.this); LinearLayout.LayoutParams linearParams = new LinearLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); childLayout.setLayoutParams(linearParams); TextView mType = new TextView(MainActivity.this); TextView mValue = new TextView(MainActivity.this); mType.setLayoutParams(new TableLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f)); mValue.setLayoutParams(new TableLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f)); mType.setTextSize(17); mType.setPadding(5, 3, 0, 3); mType.setTypeface(Typeface.DEFAULT_BOLD); mType.setGravity(Gravity.LEFT | Gravity.CENTER); mValue.setTextSize(16); mValue.setPadding(5, 3, 0, 3); mValue.setTypeface(null, Typeface.ITALIC); mValue.setGravity(Gravity.LEFT | Gravity.CENTER); mType.setText("111"); mValue.setText("111"); childLayout.addView(mValue, 0); childLayout.addView(mType, 0); linear.addView(childLayout); } 

Измените свою относительную компоновку на линейную компоновку, и она будет решена

JFI, почему бы вам просто не использовать ListView. В сообщении вы упомянули, что количество предметов неизвестно. Таким образом, может случиться так, что у вас будет количество предметов больше, чем у вас на видимом экране. Listview будет обрабатывать прокрутку для вас.

PS: Здесь вместо Relative или LinearLayout используйте scrollView