2016-09-08 3 views
0

클릭 이벤트에서 프래그먼트를 추가하는 코드가 있습니다. 이 작품과 버튼을 이후에 디스플레이에서 제거되지만, 사용자가 다시 누르면, 그리고 조각을 떠날 때 버튼이 나타나길 원합니다. onBackStackUsed과 같은 것입니다.프래그먼트에서 무언가가 돌아갑니다

나는 그와 비슷한 것을 찾으려고 노력했으나 그것을 할 수있는 방법을 찾지 못했습니다. 심지어 가능할까요?

final FloatingActionButton floatingActionButton = (FloatingActionButton)findViewById(R.id.live_support); 
floatingActionButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     getFragmentManager() 
      .beginTransaction() 
      .replace(R.id.live_support_frame, ChatWindowFragment.newInstance("XXX", "1"), "chat_fragment") 
      .addToBackStack("chat_fragment") 
      .commit(); 


     getFragmentManager().addOnBackStackChangedListener(
      new FragmentManager.OnBackStackChangedListener() { 
       @Override 
       public void onBackStackChanged() { 
        floatingActionButton.setVisibility(View.INVISIBLE); 
       } 
      } 
     ); 

    } 
}); 

답변

0

무시 onBackPressed을이 같은 활동의 내부 해피

@Override 
public void onBackPressed() { 
    Fragment myFragment = getSupportFragmentManager().findFragmentByTag("fragment"); 
    if (myFragment instanceof SearchFragment && myFragment.isVisible()) { 
     //do what you want here 
    } 
} 

:

@Override 
public void onBackPressed() { 
    Fragment frag = getSupportFragmentManager().findFragmentByTag("fragment"); 
    if(frag instanceOf SearchFragment && frag.getTag().equals("chat_fragment")) { 
     floatingActionButton.setVisibility(View.INVISIBLE); // or visible 
    } else { 
     super.onBackPressed(); 
    } 
} 
0

재정의 할 수있는 몇 가지 방법입니다 아래처럼 관리 : 코딩 :

0
getFragmentManager().addOnBackStackChangedListener(
    new FragmentManager.OnBackStackChangedListener() { 
     @Override 
     public void onBackStackChanged() { 
      int count = getFragmentManager().getBackStackEntryCount(); 

      if (count == 0) { 
       floatingActionButton.show(); 
      } else { 
       floatingActionButton.hide(); 
      } 
     } 
    } 
); 

onBackStachChanged는 추가하거나 쌓거나 제거 할 때.
그래서 이미 하나가 있는지 확인하고 있습니다.

관련 문제