1

TabHost를 사용하는 앱을 개발 중입니다. 내 TabHost 내부에는 네 개의 탭이 있습니다. 각 탭에는 자체 ActivityGroup이 있습니다. 자, 내가 원하는 것은, 탭 아래의 ActivityGroup 중 하나에있는 Acitivty에서 tabwidget을 일시적으로 제거하여 frameLayout이 장치의 전체 화면에서 볼 수 있도록하려는 것입니다. 그런 다음 활동이 다른 활동으로 전환하면 Tabwidget이 화면에 다시 나타납니다. 첫 번째 질문은 내가 할 수 있느냐는 것입니다. 그렇다면 어떻게 할 수 있습니까? 가능하지 않다면 Tabwidget의 탭 아래에서 Activity와 ActivityGroup 사이를 전환 할 수 있습니까?일시적으로 TabHidget에서 Tabwidget을 제거하는 방법?

답변

1

StartActivity() 작품은 ActivityGroup에도 있습니다. 이므로 전체 화면에서 활동이 시작되고 finish();ActivityGroup()으로 다시 전송됩니다. 하단의 탭에 대한

+0

고마워, 내가 뭘하고 싶은지 할 수있는 방법에 대한 생각이 ..... ..... !!! – Junaid

0

TabWigetView의 하위 클래스이므로 setVisibility()을 사용하여 숨기거나 다시 표시 할 수 있어야합니다.

TabWidget에 대한 참조가 필요합니다.이 참조는 hide/show를 처리 할 클래스에 따라 다릅니다. 당신이 할 필요가있는 탭을 숨길 필요가 Activity에서 다음

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); 
} 

: 그래서 거기에 우리가 두 가지 방법과 TabWidget에 대한 참조를 추가 - 내 예제에서 나는 당신이 당신의 TabActivity에 기능을 넣어 가정 아래 뭔가 같은 :

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();를 호출을 재표합니다.

+0

글쎄, 나는이 질문을하기 전에 그런 짓을했다. 그러나 Tabwidget이 보이지는 않지만 Tabwidget의 공간은 공백으로 남아 있지만 FrameLayout은 전체 화면을 덮지 않습니다. Tabwidget이 일시적으로 제거되면 FrameLayout이 전체 화면으로 표시됩니다. – Junaid

1

:

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); 

} 
관련 문제