2016-11-02 6 views
1

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

android.support.v4.app.FragmentManager fm   = getSupportFragmentManager(); 
       Dashboard        newFragment = (Dashboard) fm.findFragmentByTag("viewAlbum"); 
       if (newFragment == null) { 
        newFragment = new Dashboard(); 
       } 
       fm.beginTransaction() 
         .replace(R.id.content_frame, newFragment, "viewAlbum") 
         .show(newFragment) 
         .commitAllowingStateLoss(); 
       supportInvalidateOptionsMenu(); 

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

android.support.v4.app.FragmentManager fm   = getSupportFragmentManager(); 
      AssigneewiseFragment     newFragment = (AssigneewiseFragment) fm.findFragmentByTag("viewSelectedPlaylist"); 
      if (newFragment == null) { 
       newFragment = new AssigneewiseFragment(); 
      } 
      fm.beginTransaction() 
        .add(R.id.content_frame, newFragment, "viewSelectedPlaylist") 
        .show(newFragment) 
        .addToBackStack(null) 
        .commitAllowingStateLoss(); 

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

+1

Вы используете add() в случае второго фрагмента. Вместо этого попробуйте заменить(). – Karan

+0

У вас есть оба фрагмента, загруженные в рамку, и не заданы какие-либо фон для назначения thisEizeFragment. После того, как вы установили некоторый фон для основного макета assigneewiseFragment, он будет охватывать первый фрагмент. –

+0

с помощью функции replace() снова заставляет метки в первом фрагменте быть laggy во время второй транзакции –

ответ

1

Я не думаю, что вместо() будет решить вашу проблему

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

+0

установка цвета фона не тренировки. Если какие-либо элементы на замененном фоне имеют Click listener, то даже если вы на новом, вы все равно можете щелкнуть и вызвать их. –

+0

Я имею в виду использование пустого прослушивателя, который должен работать. –

+0

спасибо, ... –

1

Использование replace вместо add

android.support.v4.app.FragmentManager fm   = getSupportFragmentManager(); 
      AssigneewiseFragment     newFragment = (AssigneewiseFragment) fm.findFragmentByTag("viewSelectedPlaylist"); 
      if (newFragment == null) { 
       newFragment = new AssigneewiseFragment(); 
      } 
      fm.beginTransaction() 
        .replace(R.id.content_frame, newFragment, "viewSelectedPlaylist") 
        .show(newFragment) 
        .addToBackStack(null) 
        .commitAllowingStateLoss(); 
+0

с помощью функции replace() снова вызывает представления в первом фрагменте, чтобы быть лагги во время второй транзакции –

+0

вставить контейнер xml , Вы используете framelayout как контейнер? –

+0

Контейнер RelativeLayout –

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