액티에서 사이드바 메뉴로 사용하기 위해 프래그먼트를 만들었습니다.
그리고 액티의 리니어레이아웃에 프래그먼트를 담아주고,
액티에는 오픈 버튼을 두고 프래그먼트(사이드바 모양)에는 클로즈 버튼을 두어서
슬라이드 애니메이션으로 열고닫고 해주고 있는데요,
메뉴를 닫아도 프래그먼트의 사이드바 메뉴의 UI 들이 보이진 않지만 터치가 되고 동작해서 문제네요..
액티 위에 있어서 액티의 메뉴부분을 터치하면 프래그먼트의 해당위치가 onClick 됩니다.
이런 현상은 어떻게 해결을 해주어야 하는지요..?
public class MainActivity extends AppCompatActivity implements SideMenuFragment.OnFragmentInteractionListener {
Animation translateLeftAnim;
Animation translateRightAnim;
LinearLayout slidingPage01; //슬라이드용 프래그먼트 레이아웃
private ImageView btn_open;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
slidingPage01 = (LinearLayout)findViewById(R.id.slidingPage01);
SideMenuFragment frg = new SideMenuFragment();
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.slidingPage01, new SideMenuFragment());
fragmentTransaction.commit();
btn_open = (ImageView)findViewById(R.id.btn_open);
//애니메이션
translateLeftAnim = AnimationUtils.loadAnimation(this, R.anim.translate_left);
translateRightAnim = AnimationUtils.loadAnimation(this, R.anim.translate_right);
btn_open.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
btn_open.setEnabled(false);
slidingPage01.setEnabled(true);
slidingPage01.setVisibility(View.VISIBLE);
slidingPage01.startAnimation(translateLeftAnim);
}
});
}
void CloseMenu(){ // 프래그먼트에서 닫기버튼 누르면 이 함수 호출
btn_open.setEnabled(true);
slidingPage01.startAnimation(translateRightAnim);
slidingPage01.setVisibility(View.GONE);
slidingPage01.setEnabled(false);
}
}