조각으로 빌드 된 응용 프로그램을 디버깅하려고합니다. 조각에 대해 거의 알지 못하기 때문에 몇 가지 문제가 있습니다.DrawerLayout을 조각으로 처리
MainActivity 또는 다른 조각에서 프래그먼트를 열면 동작 버튼이 뒤로 버튼으로 변환되기를 원합니다. 나는 그 일을 좀 해냈다. 그러나 단편에서 뒤로 누르고 다시 시작하면 다시 버튼이 홈 버튼으로 돌아 간다.
다시 화살표로 변환 할 때 Android에서 뒤로 버튼처럼 작동하는 방법을 알고 싶습니다. 그것은 현재 아무것도하지 않습니다.
MainActivity를
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_trash_all: DataHolder.cart = null; isTrashButtonPresent = false; supportInvalidateOptionsMenu(); inflateFragment(CartFragment.newInstance(null, null)); resolveCircularText(DataHolder.getOverallCartQuantity()); return true; case R.id.btnMyMenu: if (drawer.getDrawerLockMode(GravityCompat.START) ==DrawerLayout.LOCK_MODE_LOCKED_CLOSED) { onBackPressed(); } else { drawerToggle(); } return true; default: return super.onOptionsItemSelected(item); } } private void drawerToggle() { if (drawer.isDrawerVisible(GravityCompat.START)) { drawer.closeDrawer(GravityCompat.START); } else { drawer.openDrawer(GravityCompat.START); } } private void setupNavigationDrawer() { mDrawerToggle = new ActionBarDrawerToggle( this, drawer, toolbar, R.string.navigation_drawer_open,R.string.navigation_drawer_close); mDrawerToggle.setHomeAsUpIndicator(R.drawable.drawer_icon); drawer.addDrawerListener(mDrawerToggle); navigationView.setNavigationItemSelectedListener(this); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); } setDrawerState(true); } public void setDrawerState(boolean isEnabled) { if (isEnabled) { drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, GravityCompat.START); mDrawerToggle.syncState(); } else { drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.START); //Drawable backButton = ContextCompat.getDrawable(this, R.mipmap.ic_back_button); getSupportActionBar().setHomeAsUpIndicator(null); } }
조각 :
에서 OnCreate :
다음if (getActivity() != null) { ((MainActivity) getActivity()).setDrawerState(false); } @Override public void onDestroy() { super.onDestroy(); if (getActivity() != null) { ((MainActivity) getActivity()).setDrawerState(true); } }
감사합니다. dvance!
나는 당신이 원하는 것을 이해하지 못합니다. 사용자가 수행하는 작업과 각 단계에서 앱이 어떻게 대응해야 하는지를 단계별로 설명 할 수 있습니까? 스크린 샷이나 실물 모형이 많은 도움이됩니다. –
전자 상거래 앱입니다. MainActivity에는 일부 조각 (내 계정, 위시리스트 등)으로 연결되는 버튼이있는 DrawerLayout이 있습니다. 사용자가 단편을 열면 DrawerLayout이 비활성 상태가되고 DrawerLayout 액션 버튼 대신 뒤로 버튼이 표시됩니다. 다시 버튼을 제외하고는 아무 작업도 수행하지 않습니다. 예를 들어 사용자가 휴대 전화의 기본 뒤로 버튼을 누른 상태에서 프래그먼트에서 다른 프래그먼트로 돌아 가면 뒤로 버튼이 사라집니다. 나는 몇 가지 스크린 샷으로 질문을 업데이트 할 것이다. –
질문을 편집해야합니다. –