В зависимости от ожидаемого результата Есть 2 способа решения вашей проблемы.
Первый: проблема в headerRl, который по умолчанию установлен как wrap_content, wrap_content. Итак, что вам нужно?чтобы определить его параметры макета с помощью match_parent:
headerRlLayoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
headerRl.setLayoutParams(headerRlLayoutParams)
Первый параметр может быть wrap_content, зависит от того, что вы хотите, но второй должен быть match_parent, в противном случае он будет по умолчанию wrap_content, который будет позиционировать вашвид сверху
Создать headerParams как headerParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT...
И это все.При совпадении родительских элементов ваш взгляд занимает всю ширину родительского элемента.Если это именно то, что вам нужно, тогда посмотрите второй вариант ниже
Второй вариант: Если вы хотите, чтобы ваше представление было match_parent и использовалось полное представление, тогда ваша проблема: new RelativeLayout.LayoutParams (ViewGroup.LayoutParams.MATCH_PARENT Из-за того, что ваш текстовый вид будет соответствовать match_parent в макете, а также потому, что вы не установили гравитацию вида - у текста по умолчанию один - top / start.
И решение простое - Установить TextViewГравитация (которая аналогична установке параметра тяжести в XML) - представление останется как match_parent - принимая всю ширину макета своего родителя, но текст будет центрирован вертикально
initial.setGravity(Gravity.CENTER_VERTICAL);
И небольшая подсказка - вытакже можно установить в параметрах разработчика «Показать границы макета», чтобы увидеть, сколько места занимает ваш макет и как сами представления размещаются в макете. Это может помочь отладить и понять, что именно идет не так