Я не уверен, где getRootView()
находится в вашем коде. Если уточнить, я могу предоставить лучшее решение.
Однако я создал проект с активностью навигационного ящика, определил RelativeLayout для динамического добавления в layout_to_be_added.xml и провел следующий эксперимент в onCreate()
MainActivity:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
final LinearLayout contentPanel = findViewById(R.id.contentPanel);
contentPanel.post(new Runnable() {
@Override
public void run() {
View layoutToBeAdded = LayoutInflater.from(MainActivity.this).inflate(R.layout.layout_to_be_added, null);
contentPanel.addView(layoutToBeAdded);
// contentPanel.invalidate();
}
});
}
Это привело к проблеме, о которой вы упомянули, индикатор выполнения и текст не ниже центрированного логотипа, как показано здесь:
.
Кажется, нулевой корень вызывает неправильные вычисления или оценки, поэтому я обновил строку inflate()
следующим образом:
View layoutToBeAdded = LayoutInflater.from(MainActivity.this).inflate(R.layout.layout_to_be_added, contentPanel, false);
Здесь мы предоставляем контейнер как root, но мы не прикрепляем к нему макет слайдера. Таким образом, корень используется только для вычисления правильных LayoutParams, и мы получаем ожидаемый результат, как показано ниже: