2015-12-18 7 views
1

enter image description here У меня есть табус, который является местом внутри моей основной деятельности (ящик навигации).
В каждой вкладке у меня есть ViewPager.
ViewPager состоит из разных фрагментов.
Внутри этих фрагментов мне нужно скрыть/показать мою TabHost.
Но я не знаю, как передать TabHost из моей активности в фрагмент.TabHost (Скрыть Tabhost Из фрагмента)

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_navigation); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
      this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    drawer.setDrawerListener(toggle); 
    toggle.syncState(); 

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(this); 

    tabHost = (TabHost) findViewById(R.id.tabHost); 
    tabHost.setup(); 
    tabHost.setOnTabChangedListener(this); 
    setNewTab(this, tabHost, "tab1", R.string.textTabTitle1, R.drawable.icon_search, R.id.tab1); 
    setNewTab(this, tabHost, "tab2", R.string.textTabTitle1, R.drawable.icon_comment, R.id.tab2); 
    setNewTab(this, tabHost, "tab3", R.string.textTabTitle1, R.drawable.icon_car, R.id.tab3); 


    final ViewPager pagerComment = (ViewPager) findViewById(R.id.pagerComment); 
    pagerComment.setAdapter(new AdapterTabComment(getSupportFragmentManager())); 

    final ViewPager pagerSearch = (ViewPager) findViewById(R.id.pagerSearch); 
    pagerSearch.setAdapter(new AdapterTabSearch(getSupportFragmentManager())); 

    tabsComment = (PagerSlidingTabStrip) findViewById(R.id.tabsComment); 
    tabsComment.setViewPager(pagerComment); 
    setTextColor(0, tabsComment); 

    tabsSearch = (PagerSlidingTabStrip) findViewById(R.id.tabsSearch); 
    tabsSearch.setViewPager(pagerSearch); 
    setTextColor(0, tabsSearch); 

    pagerComment.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
     @Override 
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
     } 

     @Override 
     public void onPageSelected(int position) { 
      setTextColor(position, tabsComment); 
     } 

     @Override 
     public void onPageScrollStateChanged(int state) { 
     } 
    }); 


    pagerSearch.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
     @Override 
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
     } 

     @Override 
     public void onPageSelected(int position) { 
      setTextColor(position,tabsSearch); 
     } 

     @Override 
     public void onPageScrollStateChanged(int state) {}}); 
    pagerSearch.setCurrentItem(0); 
} 

Возможно ли это?
Спасибо ..

+0

Можете ли вы подключить снимки экрана, чтобы я мог помочь вам решить эту проблему ... что вы хотите на самом деле? –

+0

OK жду ... плохой какой-нибудь. Благодарю. –

+0

ok я жду –

ответ

2

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

+0

Очень полезно! Благодарю. Я решил, что он просто объявляет статику. спасибо –

+0

ii хотите скрыть просмотрщик в Tablayout? как это сделать? ТИА –

0

я вмятина получить ваш вопрос правильно, но я отвечу на вопрос, как я понял

как вы изволили фрагмент faragment = новый фрагмент(); передать некоторые ключи этому фрагменту как параметры, чтобы на этой основе вы могли скрыть или показать tabhostsinside фрагмент. если я ошибаюсь, извините.

+0

Как это сделать? Могу ли я передавать идентификаторы? Как идентификатор TabHost? –

+0

Я понял, что вы хотите скрыть нижнюю вкладку, чтобы прокрутить сам ритуал, или вы хотите скрыть вкладку при вводе этого конкретного фрагмента. – nakul

+1

Да. но вкладка объявлена ​​в моей активности, и я скрою ее, когда прокрутка recyclerview в другом фрагменте. –