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 ?

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

  • Патч для перехвата Android \ copy \ cut на editText
  • Добавить пользовательский шрифт для полного приложения для Android
  • Активная ссылка URL-адреса Android в TextView
  • Как установить стиль шрифта полужирным, курсивным и подчеркнутым в Android TextView?
  • Изменить правильную маржу в представлении Programmatically?
  • Android Swipe в списке
  • Как изменить цвет части TextView?
  • Как показать круговой текст с помощью TextView в Android
  • Установите маску макета TextView программно
  • Различные размеры шрифтов строк в том же TextView
  • Программно установить левую выделенную в TextView
  • Давайте будем гением компьютера.