Я пытаюсь добавить два текстовых файла программно в линейный макет, который находится в макете фрейма. Код XML является:Невозможно добавить динамический вид в линейную компоновку в макете кадра
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/ll_dynamic"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="20dp"
android:orientation="vertical" >
</LinearLayout>
<com.anheuserbusch.hifive.util.TextViewFiftySeven
android:id="@+id/txt_no_badges"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:visibility="gone"
android:textColor="@color/app_default_font_color"
android:text="@string/no_badges_yet"/>
</FrameLayout>
ll_dynamic является Linear Layout, в котором я добавляю мнение программно.
Код:
for (int i = 0; i < 10; i++)
{
TextViewFiftySeven txtIncentiveName = new TextViewFiftySeven(context);
TextViewFiftySeven txtDate = new TextViewFiftySeven(context);
//for Incentive name
LinearLayout.LayoutParams llptextname = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
llptextname.setMargins(0, 10, 0, 0); // llp.setMargins(left, top, right, bottom);
//for date
LinearLayout.LayoutParams llptextdate = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
llptextdate.setMargins(0, 1, 0, 0); // llp.setMargins(left, top, right, bottom);
txtIncentiveName.setLayoutParams(llptextname);
txtIncentiveName.setTextColor(ContextCompat.getColor(context, R.color.app_default_font_color));
txtIncentiveName.setText("Summer Incentive");
txtDate.setLayoutParams(llptextdate);
txtDate.setTextColor(ContextCompat.getColor(context, R.color.app_default_font_color));
txtDate.setText("23.2.2015");
holder.ll_dynamic.addView(txtIncentiveName);
holder.ll_dynamic.addView(txtDate);
System.out.println("Looping-->"+i);
if (i != badgeCount - 1) {
LinearLayout.LayoutParams llhorizontalLine = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 2);
llhorizontalLine.setMargins(0, 20, 0, 0); // llp.setMargins(left, top, right, bottom);
View horizontalLine = new View(context);
horizontalLine.setLayoutParams(llhorizontalLine);
horizontalLine.setBackgroundColor(ContextCompat.getColor(context, R.color.gray_light));
holder.ll_dynamic.addView(horizontalLine);
}
}
Проблема заключается в том, что взгляды не получают добавлены программно. Но если я удаляет раскладку кадра, то представления отображаются по желанию. Понятно, что это проблема из-за макета кадра. Но мне нужно сохранить макет рамки.
Итак, почему представления не добавляются динамически к линейной компоновке, если она находится в макете кадра?
Я добавляю вид внутри линейного макета, который находится в макете кадра ... не сам кадр рамки – kgandroid
Ах да, я вижу. Тем не менее макет-гравитация может работать. Или попробуйте удалить TextViewFiftySeven из xml и проверить, работает ли LinearLayout так, как предполагалось. Если нет, вы уверены, что вам нужно использовать FrameLayout? Существует много других макетов, которые могут дать вам желаемые результаты. – miva2
Да, я выполнил свою задачу, удалив фрейм-макет ... но логически я не смог найти никакой ошибки при добавлении к линейному макету, ЧТО ОСТАЕТСЯ В РАМКАХ LAMEOUT. Но не знаю, почему этого не происходит. – kgandroid