как обернуть содержимое textview auto resize

#android #android-layout #autoresize

#Android #android-макет #автоматическое изменение размера

Вопрос:

Мне нужно установить параметры для текстового представления, которое создается динамически, текст текстового представления взят из базы данных. Поскольку некоторый текст может быть большим, он превышает мобильное окно и продолжает отображать текст в одной строке

     TableLayout tbl=(TableLayout) findViewById(R.id.tbla);
    TableRow row= new TableRow(this);
            TableRow.LayoutParams lp = new    TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT);
            row.setLayoutParams(lp);
TextView tv1 = new TextView(this);
            tv1.setSingleLine(false);
            tv1.setEllipsize(null);
            tv1.setTextSize(getResources().getDimension(R.dimen.textsize));
            tv1.setHorizontallyScrolling(false);
            tv1.setText(log);
            row.addView(tv1);
            tbl.addView(row,i);
  

Я прочитал несколько статей и внес в них некоторые возможные свойства .. пожалуйста, помогите мне изменить его размер автоматически..

Комментарии:

1. Что вы хотите, чтобы произошло, когда текст превышает ширину экрана?

2. @joao2fast4u: он должен добавляться как новая строка, но он по-прежнему находится в одной строке

3. Не могли бы вы показать свой XML-макет? Это должно иметь какое-то отношение к вашему TableLayout компоненту.

Ответ №1:

Просто добавьте эту строку в свой код, прежде чем добавлять свой TextView в TableRow :

 tv1.setLayoutParams(new TableRow.LayoutParams(0, LayoutParams.WRAP_CONTENT, 1f));
  

Это позволит вам TextView всегда показывать всю его высоту.

Комментарии:

1. Большое спасибо, брат.. @joao2fast4u наконец-то это сработало… Я спрашивал многих людей, никто не ответил мне правильно .. 🙂

Ответ №2:

Попробуйте этот способ, надеюсь, это поможет вам решить вашу проблему.

 TableLayout tbl=(TableLayout) findViewById(R.id.tbla);
TableRow row= new TableRow(this);
TableLayout.LayoutParams lp = new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT,TableLayout.LayoutParams.WRAP_CONTENT);
row.setLayoutParams(lp);
TextView tv1 = new TextView(this);
tv1.setTextSize(getResources().getDimension(R.dimen.textsize));
tv1.setText(log);
row.addView(tv1,new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
tbl.addView(row,i);