2015-04-30 4 views
0

в моем фрагменте Я хочу setVisibility для одного элемента моего макета на заднем прессе.Обращайтесь обратно в Фрагмент

, например, в фрагменте я хочу это:

if(list.getVisibility() == View.GONE){ 

      list.setVisibility(View.VISIBLE); 
      text.setVisibility(View.GONE); 

    } 

Но как я могу обрабатывать заднюю пресс-конференцию в фрагменте? и установить эту видимость?

UPDATE:

В моей FragmentActivity я есть:

adapter = new ViewPagerAdapterEventi(getSupportFragmentManager(),Titles,Numboftabs,mE1,mE2); 

     // Assigning ViewPager View and setting the adapter 
     pager = (ViewPager) findViewById(R.id.pager); 
     pager.setAdapter(adapter); 

     // Assiging the Sliding Tab Layout View 
     tabs = (SlidingTabLayout) findViewById(R.id.tabs); 
     tabs.setDistributeEvenly(true); // To make the Tabs Fixed set this true, This makes the tabs Space Evenly in Available width 

     // Setting Custom Color for the Scroll bar indicator of the Tab View 
     tabs.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() { 
      @Override 
      public int getIndicatorColor(int position) { 
       return getResources().getColor(R.color.tabsScrollColor); 
      } 
     }); 

     // Setting the ViewPager For the SlidingTabsLayout 
     tabs.setViewPager(pager); 

И в Adaper:

public class ViewPagerAdapter extends FragmentStatePagerAdapter { 

.... 

@Override 
    public Fragment getItem(int position) { 


     if (position == 0) // if the position is 0 we are returning the First tab 
     { 


      check = position; 
      Fragment1 tab1 = new Fragment1(); 

      Bundle args = new Bundle(); 
      args.putString("json", mEv1.toString()); 
      tab1.setArguments(args); 




      return tab1; 
     } else { 
      Fragment2 tab2 = new Fragment2(); 
      check = position; 
      Bundle args = new Bundle(); 
      args.putString("json", mEv2.toString()); 
      tab2.setArguments(args); 
      return tab2; 
     } 


    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return Titles.get(position); 
    } 

    // This method return the Number of tabs for the tabs Strip 

    @Override 
    public int getCount() { 
     return NumbOfTabs; 
    } 

} 

ответ

3

Пожалуйста переопределять метод в FragmentActivity

@Override 
     public void onBackPressed() { 
      // TODO Auto-generated method stub 
      super.onBackPressed(); 
      Fragment fragment = getSupportFragmentManager().findFragmentByTag("FRAGMENT_TAG"); 
      fragment.setUserVisibility(); 
     } 
+0

Я могу использовать что-то вроде: adapter.getItem (0) .getView(). FindViewById (R.id.list) .setVisibility (View.VISIBLE); –

+0

yes Вы можете использовать этот метод в своей функции setUserVisibility() вашего фрагмента.e.g. public void setUserVisibility() { adapter.getItem (0) .getView(). FindViewById (R.id.list) .setVisibility (View.VISIBLE); } –

+0

ok я попробую сейчас ... –

2

У вас есть чтобы справиться с этим в вашей деятельности

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    MyCustomFragment fragment = (MyCustomFragment) getFragmentManager().findFragmentByTag("TAG_I_USED_WHEN_COMMITTING_FRAGMENT"); 
    if(fragment != null) { 
     fragment.onBackPressed(); 
    } 
} 

И создать публичный метод в MyCustomFragment называется onBackPressed() обрабатывать все, что должно произойти при нажатии кнопки назад.

примечание: Не забывайте, что ваш FragmentManager также может обрабатывать событие onBackPressed и удалять фрагмент из заднего стека, например. Это зависит от того, как вы добавили фрагмент

Смежные вопросы