android: LayoutParams для TextView делает вид исчезающим, программным

Я ударил это с разных точек зрения. В основном суть такова:

Я выложил шаблон в XML для интерфейса, который НЕОБХОДИМО запускаться программно, поэтому он будет динамически заполняться во время прогона.

Проблема здесь заключается в том, что XML TextView имеет довольно много настроек макета (которые работают) и необходимы. Но если я действительно установил их в коде, TextView даже не появится.

(TextView, кстати, вложен внутри TableRow, таким образом, призыв к весу.) Сначала созданный мной XML-шаблон, который я использовал в качестве ссылки для кода, и он отлично работает:

 

Как я уже сказал, это прекрасно. Когда я запускаю один и тот же макет в коде, и применяю LayoutParams, TextView исчезает.

Вот соответствующий fragment:

 int textViewExampleID = 9001; private TextView txtviewExample = new TextView(this); private void buildTextView(){ LayoutParams paramsExample = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,1.0f); txtviewExample.setId(textViewExampleID); txtviewExample.setBackgroundResource(R.drawable.textview_9patch_white); txtviewExample.setGravity(Gravity.CENTER); txtviewExample.setTextColor(getResources().getColor(android.R.color.black)); paramsExample.setMargins(20, 20, 20, 20); txtviewExample.setPadding(20, 20, 20, 20); txtviewExample.setTextSize(40); txtviewExample.setText("customExample"); //if I comment out the following line, this TextView displays. //if I leave it in, it doesn't display. txtviewExample.setLayoutParams(paramsExample); } 

Я понимаю, что для LayoutParams есть всевозможные доступные classы, и я играл с ними все LinearLayout.LayoutParams, TableView.LayoutParams, RelativeLayout.LayoutParams, LayoutParams только сам по себе … Независимо от того, какой я пытаюсь, любая попытка вызова «setLayoutParams» отображает весь TextView. Я просмотрел форумы здесь и не нашел ответа. Это не может быть ЧТО необычно.

хорошо, это было больно, но я, наконец, понял это. Самое главное, что я помню (что я только понял), это то, что из всех мириад LayoutParams , вам нужно использовать тот, который относится к PARENT вида, над которым вы работаете, а не фактическое представление.

Поэтому в моем случае я пытался получить поля TextView , но он TableRow в TableRow . Одно простое изменение заключалось в том, что тип используемых LayoutParams был TableRow для TableRow :

 private void buildTextView(){ // the following change is what fixed it TableRow.LayoutParams paramsExample = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,1.0f); txtviewExample.setId(textViewExampleID); txtviewExample.setBackgroundResource(R.drawable.textview_9patch_white); txtviewExample.setGravity(Gravity.CENTER); txtviewExample.setTextColor(getResources().getColor(android.R.color.black)); paramsExample.setMargins(20, 20, 20, 20); txtviewExample.setPadding(20, 20, 20, 20); txtviewExample.setTextSize(40); txtviewExample.setText("customExample"); txtviewExample.setLayoutParams(paramsExample); } 

Спасибо, ребята, надеюсь, это пригодится кому-то еще по этой линии, так как я видел много полузадачных вопросов на форумах здесь, но не тот, который действительно определяет проблему.

 private TextView txtviewExample = new TextView(this); private void buildTextView(){ LayoutParams paramsExample = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,1.0f); txtviewExample.setId(textViewExampleID); txtviewExample.setBackgroundResource(R.drawable.textview_9patch_white); txtviewExample.setGravity(Gravity.CENTER); txtviewExample.setTextColor(getResources().getColor(android.R.color.black)); paramsExample.setMargins(20, 20, 20, 20); txtviewExample.setPadding(20, 20, 20, 20); txtviewExample.setTextSize(40); txtviewExample.setText("customExample"); setContentView(txtviewExample);//when you don't use SETTER method for TextView you can't view the desireable text on the UI// } 

// использование

какова 3-я переменная в layoutparams, которая должна делать, это альфа? что произойдет, если вы закомментируете paramsExample.setMargins

наконец, что произойдет, если вы в txtviewExample.setVisible(View.Visible) после того, как вы setLayoutParams ?

это будут те вещи, которые я постараюсь, если вы не

  • Проблема при использовании пользовательского шрифта - «родной шрифт не может быть создан»
  • Создание прокрутки TextView на Android
  • Как выровнять TextView вокруг ImageView?
  • Новый символ строки \ n не отображается правильно в текстовом приложении Android
  • Изменить цвет текста в тексте TextView и щелкнуть?
  • Как щелкнуть или коснуться текста TextView
  • Сделать гиперссылку textview в android
  • Как изменить текст textView fragmentа из активности
  • Android TextView Обоснование текста
  • Динамически добавлять текстовые элементы в линейный режим
  • Различные размеры шрифтов строк в том же TextView
  • Interesting Posts

    Количество дней в конкретном месяце того же года?

    Беспроводная сеть G / Wireless N / и ATA / проводной Ethernet

    Добавить родительский селектор до конца с помощью Sass

    Как настроить log4j для регистрации различных уровней журнала для разных файлов для одного и того же регистратора

    Вызов awt Кадровые методы из подclassа

    Какое максимальное поддерживаемое аппаратное ОЗУ в Windows 32-бит?

    Должен ли доступ к SharedPreferences делать из streamа пользовательского интерфейса?

    Windows: как добавить действие пакетного скрипта в меню правой кнопки мыши

    OnGlobalLayoutListener: устаревание и совместимость

    Цвет jpeg-изображения сильно изменяется после просто ImageIO.read () и ImageIO.write ()

    дополнительная ошибка квалификации в C ++

    Обратный вызов GATT не регистрируется

    Отключить функциональность восстановления сеанса Google Chrome

    Пример использования андроидов lrucache

    Нет сгенерированного файла R.java в моем проекте

    Давайте будем гением компьютера.