#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);