如何设置退格按钮到位 ActionbarDrawerToggle 导航到以前的片段?
Posted
技术标签:
【中文标题】如何设置退格按钮到位 ActionbarDrawerToggle 导航到以前的片段?【英文标题】:how to set backspace button in place ActionbarDrawerToggle to navigate to previous fragments? 【发布时间】:2021-10-31 20:03:09 【问题描述】:我正在从 Main_activity.java 调用片段,也从其他片段调用片段,但我想在加载任何片段(来自 Main_activity 或任何其他片段)而不是 ActionBarDrawerToggle 时显示退格(
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 where the toogle is shown and after click on students, the image should look like
【问题讨论】:
【参考方案1】:在 setSupportActionBar(toolbar); 之后添加这两行
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);
【讨论】:
以上是关于如何设置退格按钮到位 ActionbarDrawerToggle 导航到以前的片段?的主要内容,如果未能解决你的问题,请参考以下文章