Вы должны иметь возможность установить ширину TextView равным fill_parent, и в этом случае он будет выполнять перенос.Вы не должны устанавливать ширину ваших макетов равной match_parent, так как это неэффективно при использовании весов макета.
Поскольку система макетов в Android иногда бывает загадочной в отношении размеров просмотра, если для ширины TextView задано значениеНа самом деле fill_parent заставляет его занимать весь экран (как, по-видимому, подразумевает ваш вопрос), делает следующее:
Установите ширину TextView равной 0 по умолчанию.В onCreate вашей деятельности после установки представления содержимого:
findViewById(R.id.acciones).getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
final int fragmentWidth = findViewById(R.id.releventFragmentId).getWidth();
if (fragmentWidth != 0){
findViewById(R.id.yourTextViewId).getLayoutParams().width = fragmentWidth;
}
}
});
Установив ширину TextView равным 0, вы не позволяете ему изменять ширину фрагментов.Затем вы можете использовать обозреватель дерева представлений, чтобы получить ширину любого интересующего вас фрагмента (глядя на его корневой вид) после того, как макет произошел.Наконец, вы можете установить для вашего TextView именно такую ширину, которая, в свою очередь, автоматически выполнит для вас обтекание.
Обратите внимание, что onGlobalLayout может вызываться несколько раз и регулярно вызываться до того, как все представления будут полностью заложены.отсюда, отсюда проверка! = 0.Вы также, вероятно, захотите сделать какую-то проверку, чтобы убедиться, что вы устанавливаете ширину текстового представления только один раз, или иначе вы можете попасть в бесконечный цикл макета (не конец света, но не хороший для производительности).