Mat*_*tia 3 android android-layout android-actionbar navigation-drawer
在编写此线程之前,我已尝试实现我在stackoverflow中找到的不同解决方案,但没有任何正常工作.
我正在开发一个使用自定义导航抽屉的Android applucation,我必须更改操作栏的标准图标(现在是工具栏,对吗?)和设置图标.
这是我的代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitleTextColor(Color.parseColor("#009754"));
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
Run Code Online (Sandbox Code Playgroud)
这就是我尝试实现的:
此解决方案不起作用:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitleTextColor(Color.parseColor("#009754"));
toolbar.setNavigationIcon(R.drawable.ic_draw);
setSupportActionBar(toolbar);
Run Code Online (Sandbox Code Playgroud)
此解决方案不起作用:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(false);
toggle.setDrawerIndicatorEnabled(false);
toggle.setHomeAsUpIndicator(R.drawable.ic_custom_drawer_icon);
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我不能改变图标,我不知道是什么问题...
Raj*_*ddy 12
简单而优雅的解决方案
地点
__CODE__//你的图标在这里
后
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.dashboardicon);//your icon here
Run Code Online (Sandbox Code Playgroud)
导航活动的整体解决方案
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer,toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
Run Code Online (Sandbox Code Playgroud)
注意:它不需要任何setNavigationOnClickListener()
禁用以下抽屉指示器ActionBarDrawerToggle:
toggle.setDrawerIndicatorEnabled(false);
Run Code Online (Sandbox Code Playgroud)
然后:
toolbar.setNavigationIcon(R.drawable. ic_custom_drawer_icon);
Run Code Online (Sandbox Code Playgroud)
小智 1
如果您将 NavigationView 与 DrawerLayout 一起使用,您可以像这样以编程方式设置汉堡包图标;
private fun setupToolbarWithCustomDrawerIcon() {
val toggle = ActionBarDrawerToggle(
this,
binding.drawerLayout,
binding.toolbar,
R.string.navigation_drawer_open,
R.string.navigation_drawer_close
)
binding.drawerLayout.addDrawerListener(toggle)
toggle.syncState()
binding.toolbar.setNavigationIcon(R.drawable.ic_drawer_menu)
}
Run Code Online (Sandbox Code Playgroud)
输出:
| 归档时间: |
|
| 查看次数: |
5581 次 |
| 最近记录: |