Попробуйте установить максимальную ширину TextView. Я думаю, что когда вы устанавливаете ширину wrap_content и она переходит к следующей строке, это означает, что ширина максимальна (поэтому она заполняет родительский контейнер). Поэтому я предполагаю, что когда вы устанавливаете максимальную ширину, она должна перейти к следующей строке, как только она достигнет этой ширины.
android:maxWidth="140dp"