Как удалить Tabwidget из TabHost временно? - PullRequest
1 голос
/ 22 ноября 2011

Я занимаюсь разработкой приложения, в котором я использовал TabHost.Внутри моего TabHost есть четыре вкладки.Каждая вкладка имеет свою собственную группу действий.Теперь, что я хочу, в Acitivty внутри одной из моей ActivityGroup под вкладкой, я хочу временно удалить Tabwidget, чтобы frameLayout был виден через весь экран устройства.Затем, когда действие переключается на другое действие, вкладка вновь появится на экране.Итак, первый вопрос: могу ли я сделать это?Если тогда, как я могу это сделать?Если это невозможно, то можно ли переключаться между обычной деятельностью и деятельностью внутри ActivityGroup на вкладке Tabwidget?

Ответы [ 3 ]

1 голос
/ 22 ноября 2011

StartActivity() работает внутри ActivityGroup также. поэтому действие начнется на полном экране и finish(); вернется к ActivityGroup().

1 голос
/ 13 июня 2012

Для вкладки внизу:

public void hideTab()
{
    TabWidget tabwidget=getTabWidget();
    RelativeLayout.LayoutParams params=(RelativeLayout.LayoutParams)tabwidget.getLayoutParams();
    params.setMargins(0, 0, 0, -100);

}
public void showTab()
{
    TabWidget tabwidget=getTabWidget();
    RelativeLayout.LayoutParams params=(RelativeLayout.LayoutParams)tabwidget.getLayoutParams();
    params.setMargins(0, 0, 0, -3);

}
0 голосов
/ 22 ноября 2011

Поскольку TabWiget является подклассом View, вы должны иметь возможность скрыть / повторно показать его, используя setVisibility().

Вам понадобится ссылка на ваш TabWidget - где эта ссылка должна быть, зависит от того, какой класс будет обрабатывать скрыть / показать. В моем примере ниже я предполагаю, что вы добавили функциональность в ваш TabActivity - поэтому мы добавили два метода и ссылку на TabWidget:

TabWidget myTabWidget; //You will need to find it in the layout in onCreate using findViewById( R.id.idOfYourTabWidget ).

public void hideTabs() {
  myTabWidget.setVisibility( View.GONE );
}

public void showTabs() {
  myTabWidget.setVisibility( View.VISIBLE );
}

Тогда в Activity, который должен скрывать вкладки, вам нужно будет сделать что-то вроде:

Activity activity = getParent(); //Might be getParent().getParent(); if you're inside an ActivityGroup.
if( activity instanceof MyTabActivity ) //Just to make sure.
  ((MyTabActivity) activity).hideTabs();

И чтобы показать вкладки, то же самое, но вместо этого вызывать ((MyTabActivity) activity).showTabs();.

...