как установить кнопку backspace на месте ActionBarDrawerToggle для перехода к предыдущим фрагментам?

#android #android-fragments #android-actionbar #fragment #navigation-drawer

Вопрос:

Я вызываю фрагменты из Main_activity.java а также вызываю фрагменты из других фрагментов, но я хочу показать обратное пространство( как я могу этого достичь? Основной код деятельности

 public class MainActivity extends AppCompatActivity {

NavigationView nav;
ActionBarDrawerToggle toggle;
DrawerLayout drawerLayout;
Toolbar toolbar;
ImageView homeInToolbar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    toolbar=findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    nav=findViewById(R.id.navigationview);
    drawerLayout=findViewById(R.id.drawer);
   // homeInToolbar=findViewById(R.id.homeInToolbar);

    toggle=new ActionBarDrawerToggle(this,drawerLayout,toolbar,R.string.open,R.string.close);
    drawerLayout.addDrawerListener(toggle);
    toggle.syncState();
    FragmentManager manager=getSupportFragmentManager();
    nav.setCheckedItem(R.id.menu_home);


    FragmentTransaction transaction=manager.beginTransaction();
    manager.beginTransaction().replace(R.id.framelayout,new HomeFragment()).commit();}
 

Main_Activity, где отображается toogle, и после нажатия на студентов изображение должно выглядеть так

Ответ №1:

Добавьте эти 2 строки после setSupportActionBar(панель инструментов);

 setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
 

Ответ №2:

Это работает на меня. В main_activity, откуда я вызываю фрагмент, я отключил переключатель, как показано в приведенном ниже коде.

  public void onClick(View v) {
            toggle.setHomeAsUpIndicator(R.drawable.ic_back);
            toggle.setDrawerIndicatorEnabled(false);
            getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.framelayout,new FeeFragment(toggle)).addToBackStack(null).commit();
        }
    });
 

и там, где это необходимо, я могу включить переключение с помощью кода ниже.

 toggle.setDrawerIndicatorEnabled(true);