Добавить/удалить вкладку и ее содержимое с tabhost

У меня девять вкладок (скажем, от 0 до 8), на экране отображается только пять вкладок. Пять вкладок будут от 0 до 3 из этих девяти вкладок, а пятая вкладка будет вкладка «БОЛЬШЕ». На вкладке «БОЛЬШЕ» будет отображаться действие с GridView, показывающее изображение + заголовок оставшихся девяти вкладок (скажем, от 4 до 8). Теперь при щелчке любого элемента (изображение+заголовок) в GridView заменяется вкладка MORE Image+Title и ее содержимое/активность соответствующей активностью.

Я могу заменить индикаторы вкладок (изображение + заголовок), но изо всех сил пытаюсь заменить соответствующий контент/активность.

Как и в другом подобном потоке, они предложили использовать clearAllTabs и снова добавить/воссоздать требуемые вкладки. Но я чувствую, что очистка всех вкладок только для замены одной вкладки тяжела.

Я использую TabActivity с намерениями. Насколько я знаю, TabActivity устарела из-за своего старого приложения, изначально в нем было всего 5 вкладок, но теперь требуется добавить еще несколько вкладок.

Нужна ваша помощь, чтобы реализовать это. Если это невозможно с TabActivity, то переключение на вкладки фрагментов поможет мне?

Я пытаюсь реализовать это изображение


person amsiddh    schedule 08.06.2012    source источник


Ответы (1)


Я бы порекомендовал фрагменты точно. Я использовал TabHost в прошлом, и это было очень проблематично.

Вы можете просто иметь кнопку вверху, которая управляет видимостью фрагмента ниже. Таким образом, вы даже сможете добавлять переходы.

Эта ссылка дает немного больше информации по этой теме. Отдельный задний стек для каждой вкладки в Android с помощью фрагментов

person Frank Sposaro    schedule 08.06.2012
comment
Чтобы добавить, я только что проверил ваш образ iOS, который вы пытаетесь сделать. Похоже, вам стоит подумать об использовании панели действий. Тогда вам даже не придется иметь дело с фрагментами или пользовательской реализацией. Он также позаботится о меню переполнения. Посетите actionbarsherlock.com. - person Frank Sposaro; 08.06.2012
comment
Фрэнк Спасибо за ваш ответ. В настоящее время я могу добиться ожидаемых результатов, загрузив/установив все вкладки изначально и больше вкладок в конце. Далее просто скрываем дополнительные вкладки с помощью mTabHost.getTabWidget().getChildTabViewAt(pos).setVisibility(View.GONE); и показывая только необходимый, это просто трюк и логика для переключения между исчезнувшим и видимым, все еще работая над этим. Я согласен с вашим предложением фрагментов, но из-за нехватки времени думаю сделать это позже. Что касается предложения панели действий, у меня не было особых идей, могу ли я отображать вкладки, такие как iphone (внизу), с помощью панелей действий? - person amsiddh; 09.06.2012
comment
Ага. Панель действий — это буквально макет вашего iphone внизу (или вверху). Вы даже можете иметь кнопку ..., чтобы показать больше выбора. Это называется меню переполнения. Если я помог вам, просто примите мой ответ, чтобы он мог помочь другим! ты. - person Frank Sposaro; 10.06.2012
comment
Я могу реализовать по мере необходимости, установив свойство hidden/gone для вкладок, как я объяснил в своем предыдущем комментарии. @Frank, я принимаю ваш ответ, поскольку он дал некоторые другие идеи для реализации. - person amsiddh; 13.06.2012