Здравствуйте, Андройдеры ...
У меня проблема с изменением размера содержимого в HorizontalScrollView при повороте телефона. Я переопределяю onConfigurationChanged в своей деятельности, содержащей HorizontalScrollView, так как я хочу самостоятельно обрабатывать изменение размера. Тем не менее, у меня возникла большая проблема с поиском, где я должен поместить изменение размера контента. Горизонтальный вид ScrollView имеет FILL_PARENT как ширину и фиксированную высоту. Идея состоит в том, что он всегда должен заполнять экран по ширине, имея несколько ячеек контента, каждая из которых равна ширине самого HorizontalScrollView.
Контент в моем HorizontalScrollView состоит из одного LinearLayout (назовем это wrapperLayout) с несколькими LinearLayout внутри. Когда телефон вращается, я просто хочу изменить ширину всех LinearLayouts внутри wrapperLayout. Это легко сделать и прекрасно работает, когда я тестирую код изменения размера, помещая его в onInterceptTouchEvent (MotionEvent ev), то есть размеры представления изменяются так, как и должно быть, когда я касаюсь HorizontalScrollView.
Сложность возникает, когда я пытаюсь найти подходящее место для выполнения кода изменения размера, чтобы изменение размера происходило автоматически при повороте телефона. Я перепробовал все возможные комбинации requestLayout, onSizeChanged, onLayout, onConfigurationChanged и некоторых других и варьировал их вызовы super (если есть) до и после кода изменения размера. Я не могу заставить эту работу (представления не изменяются, даже если выполняется код изменения размера), и это действительно расстраивает. Я сделал много записей, чтобы убедиться, что HorizonalScrollView действительно изменил ширину перед вызовом моего кода изменения размера, но безрезультатно.
Кто-нибудь знает, что происходит? Какие методы вызываются и в каком порядке, когда я сам так обращаюсь с onConfigurationChanged?
Заранее спасибо