Расширение linearLayout, имеющее несколько состояний (разных элементов управления), определенных в XML
У меня есть собственный макет с некоторыми элементами управления, написанными в файле макета XML. класс привязан к этому макету, как
<com.project.layout ...>
<Checkbox...1
<TextView...2
<Button ...3
<ImageView..4 ...
../>
в зависимости от взаимодействия с пользователем, я хотел бы отобразить только 3 из определенных элементов управления, как 1,2,3. Одним щелчком пользователя я хотел бы получить 1,2,4. Для этого я разработал несколько классов состояний, которые обрабатывают removeView и addView.
У меня есть некоторые проблемы по этому поводу: 1/ Когда я могу быть уверен, что все создано, и я могу взаимодействовать с пользовательским интерфейсом (onLayout() и onMeasure(), кажется, происходят каждый раз, когда обрабатывается элемент управления) 2/ кажется, что, так как я определил макет с 4-мя элементами управления, даже если я пишу removeView, пространство, используемое удаленным элементом управления, не используется другими элементами управления... есть ли способ попросить макет изменить порядок отображения?
1 ответ
Я обнаружил, что оказалось, что на самом деле это было легко, есть метод, который я должен переопределить, который называется onFinishInflate()
,