У меня есть линейный макет внутри горизонтальной прокрутки, который я хочу настроить в соответствии с его содержимым. Я использую onLayout вызов горизонтальной прокрутки.
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
super.onLayout(changed, l, t, r, b);
if(null != views && views.size() > 0) {
int paddingLeft = (getWidth()/2) - (views.get(0).getWidth()/2);
int paddingRight = (getWidth()/2) - (views.get(views.size()-1).getWidth()/2);
content.setPadding(getPaddingLeft() + paddingLeft, getPaddingTop(), getPaddingRight() + paddingRight, getPaddingBottom());
}
content.invalidate();
}
Я зарегистрировал все размеры, и все они кажутся точными, кроме заполнения. Отступы в содержимом не видны, пока я снова не изменю видимость представления. Как вы можете видеть, я попытался аннулировать содержимое, но ширина макета все еще остается без отступов, прежде чем он снова будет перерисован. Можно ли заставить рисовать?