Вот код:
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
linearLayout.setPadding(dpToPx(left), dpToPx(top), dpToPx(right), dpToPx(bottom));
linearLayout.setBackgroundColor(Color.parseColor(c.getString(c.getColumnIndex(dbHelper.KEY_MAINCOLOR))));
TextView newTextView = new TextView(this);
newTextView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
newTextView.setTextColor(Color.parseColor("#ffffff"));
newTextView.setText("123456");
linearLayout.addView(newTextView);
toAddGroups.addView(linearLayout);
Но он почему-то он работает не правильно: Создается два linearLayout
, но пустые, без TextView
. Что я делаю не так?
Причем, если я добавляю такой textView
в toAddGroups
, то он добавляется.
Добавить TextView
в программно созданный LinearLayout
Пусть корневым контейнером у нас будет FrameLayout
, то есть:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root_frame_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Создаем LinearLayout
и задаем ему атрибуты:
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.VERTICAL);
linearLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
Создаем и конфигурируем TextView
:
TextView textView = new TextView(this);
textView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
textView.setText("New TextView");
Добавляем созданный TextView
в LinearLayout
, а затем LinearLayout
в корневой FrameLayout
:
linearLayout.addView(textView);
mRootFrameLayout.addView(linearLayout);
Касательно Вашего примера: я чуть-чуть изменил код (вручную задал отступы и цвета):
mRootFrameLayout = (FrameLayout) findViewById(R.id.root_frame_layout);
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
linearLayout.setPadding(5, 5, 5, 5);
linearLayout.setBackgroundColor(Color.parseColor("#00FF00"));
TextView newTextView = new TextView(this);
newTextView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
newTextView.setTextColor(Color.parseColor("#ffffff"));
newTextView.setText("123456");
linearLayout.addView(newTextView);
mRootFrameLayout.addView(linearLayout);
И этот код работает корректно. Проверьте, какой цвет Вы устанавливаете для linearLayout
, не #ffffff
случайно? В таком случае надпись будет сливаться с фоном.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть if, а есть switchЕсли использовать if то "или" будет записываться как ( условие | условие )
Мне нужно написать обобщённые методы: GET, POST, PUT, DELETE
У меня есть два артефакта, которые включены в основной проектПервый содержит пакет com
Добрый вечер! Имеется цель во время отображения первой активности (экрана загрузки) подгрузить вторую разметку в фоне, чтобы приложение не пыталось...