Почему программный макет невидим? - PullRequest
2 голосов
/ 26 июля 2011

мой TextView, который я добавляю в LinearLayout, не виден ... почему?

layoutVenues = (LinearLayout) findViewById(R.id.layoutv);
layoutVenues.addView(genTextView(v.getName()));
layoutVenues.addView(genLineView());

и метод genTextView:

public TextView genTextView(String text) {
        TextView tv = new TextView(this);
        tv.setText(text);
        tv.setTextColor(Color.BLACK);
        return tv;
    }

Ответы [ 4 ]

2 голосов
/ 26 июля 2011

Вам необходимо установить параметры макета, иначе у вас не будет правильного макета

public TextView genTextView(String text) {
     TextView tv = new TextView(this);
     LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutPararms.WRAP_CONTENT);
     tv.setLayoutParams(lp);
     tv.setText(text);
     tv.setTextColor(Color.BLACK);
     return tv;
    }
0 голосов
/ 26 июля 2011

Я строю большинство своих иерархий представлений для Android, используя файлы макетов XML, поэтому я не являюсь экспертом в программной сборке иерархий представлений. Тем не менее, одна вещь, которая бросается в глаза, это то, что вы не устанавливаете какие-либо параметры макета в TextView, который возвращается genTextView (). Кроме того, взгляните на параметры макета LinearLayout в своем XML-файле и убедитесь, что он действительно получает назначенную область экрана.

0 голосов
/ 26 июля 2011

Фон по умолчанию черный, я полагаю?Таким образом, у вас есть черный текст на черном фоне.Хотя, вероятно, это не так просто: P Возможно, вы захотите опубликовать xml, где определено linearlayout.

0 голосов
/ 26 июля 2011

Попробуйте добавить видимости к вашему виду..setVisibility(View.VISIBLE);

или поместите его в xml, и создание экземпляров в коде также будет хорошей идеей.

...