Я новичок в разработке Android Google Map, я использую два SupportMapFragment
в разных Fragment-1
и Fragment-2
соответственно.
Сначала я добавляю два фрагмента к BackStack
. Прежде чем показывать какой-либо фрагмент, сначала я скрою весь фрагмент.
Я хочу, чтобы эти два фрагмента были живы одновременно, поэтому я не использовал замену или удаление любого фрагмента. Forex-образец, когда fragment2
скрывается, но все равно что-то делает на заднем плане.
Сначала я открываю Fragment-1
и поворачиваюсь к Fragment-2
, а затем снова к Fragment-1
. Fragment-1
показывает перекрытие, как показано на следующем рисунке.
Я пытаюсь скрыть один из Fragment-2
, но он не работает.
IN MainActivity, я управляю своим фрагментом.
В onCreate()
я вызову следующую функцию:
public void initStartFragment(){
fragment1= new Fragment1();
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_layout, fragment1)
.addToBackStack(Fragment1.getClass().getName()).commit();
fragment2= new Fragment2();
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_layout, fragment2)
.addToBackStack(Fragment2.getClass().getName()).commit();
}
@Override
public void onClick(View v) {
FragmentTransaction mFragmentTransaction = mManager.beginTransaction();
hideFragment(mFragmentTransaction);
if(v.getId() == R.id.dive_learning_btn){
if (fragment1 == null) {
fragment1= new Fragment1();
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_layout, fragment1)
.commit();
}
mFragmentTransaction.show(fragment1)
.commit();
}else if(v.getId() == R.id.expect_setting_btn){
if (fragment2== null) {
fragment2= new Fragment2();
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_layout, fragment2)
.commit();
}
mFragmentTransaction.show(fragment2)
.commit();
}
}
Прежде чем показывать фрагмент, сначала я скрою весь фрагмент:
public void hideFragment(FragmentTransaction ft) {
//if fragment noy null , hide it.
if (fragment1 != null) {
ft.hide(fragment1 );
}
if (fragment2 != null) {
ft.hide(fragment12);
}
}
Я хочу, чтобы эти два фрагмента были живы одновременно, поэтому я не использовал замену или удаление любого фрагмента.
Почему это состояние произошло? Я что-то пропустил?
Может кто-нибудь мне помочь?
Заранее спасибо.