2015-06-02 2 views
1

Существует проблема с моим фрагментом, они показаны вместе, один на втором фрагменте. Как исчезнуть, и только показать один из них?Заменить фрагмент, показывающий оба фрагмента

Definiton:

button1.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 


        fr = new avc); 
        FragmentTransaction ft = ((TestingActivity)context).getFragmentManager().beginTransaction(); 
        ft.replace(R.id.test, fr); 
        ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
        ft.addToBackStack(null); 
        ft.commit(); 

       } 
      }); 

И Definiton контейнера ниже:

<FrameLayout 
    android:id="@+id/test" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 
+0

Где второй фрагмент? Я вижу только один фрагмент. Имеет ли другой фрагмент другой тег? – dhke

+0

вы используете только один фрагмент, то как его можно заменить? –

+0

Сначала удалите, затем добавьте новый ... –

ответ

1

Вы можете использовать некоторые вещи, как это. Создайте функцию для отображения фрагмента и вызовите каждый раз эту функцию с другим параметром.

например. Если Вы хотите, чтобы показать «HomeFragment» затем вызвать DisplayView (0), и если вы хотите, чтобы показать «FindPeopleFragment» затем вызвать DisplayView (1)

private void displayView(int position) { 
     // update the main content by replacing fragments 
     Fragment fragment = null; 
     switch (position) { 
     case 0: 
      fragment = new HomeFragment(); 
      break; 
     case 1: 
      fragment = new FindPeopleFragment(); 
      break; 
     case 2: 
      fragment = new PhotosFragment(); 
      break; 
     case 3: 
      fragment = new CommunityFragment(); 
      break; 
     case 4: 
      fragment = new PagesFragment(); 
      break; 
     case 5: 
      fragment = new WhatsHotFragment(); 
      break; 

     default: 
      break; 
     } 

     if (fragment != null) { 
      FragmentManager fragmentManager = getFragmentManager(); 
      fragmentManager.beginTransaction() 
        .replace(R.id.frame_container, fragment).commit(); 

      // update selected item and title, then close the drawer 
      mDrawerList.setItemChecked(position, true); 
      mDrawerList.setSelection(position); 
      setTitle(navMenuTitles[position]); 
      mDrawerLayout.closeDrawer(mDrawerList); 
     } else { 
      // error in creating fragment 
      Log.e("MainActivity", "Error in creating fragment"); 
     } 
    } 
Смежные вопросы