我可以在工具栏中看到后退按钮,但当我单击时,什么都没有发生。它不会onOptionsItemSelec
,但当我删除ActionBarDrawerTougle
的整个实现时,后退按钮工作正常。我需要在需要时在两者之间切换。提前感谢。
package demo.sample.com.sample.base;
public class MainActivity extends AppCompatActivity {
private static final String TAG = MainActivity.class.getSimpleName();
private DrawerLayout mDrawer;
private ActionBarDrawerToggle mDrawerToggle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_digi_care);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerToggle = new ActionBarDrawerToggle(
this, mDrawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
mDrawer.setDrawerListener(mDrawerToggle);
mDrawerToggle.syncState();
mDrawer.setFocusable(false);
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setItemIconTintList(null);
navigationView.setNavigationItemSelectedListener(this);
navigationView.getMenu().getItem(0).setChecked(true);
mDrawerToggle.setDrawerIndicatorEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Logger.i(TAG, "onOptionsItemSelected called");
switch (item.getItemId()) {
case android.R.id.home:
Logger.i(TAG, "Back button pressed"); //Never getting called
//onBackPressed();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.map_menu, menu);
return super.onCreateOptionsMenu(menu);
}
}
我终于找到了一个解决方案。取而代之的是获得工具栏主页按钮点击onOptionsItemSelec()
它可以通过DrawerToggle.setToolbarNavigationClickListener
来处理。
mDrawerToggle.setToolbarNavigationClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// event when click home button
Log.d("cek", "home selected");
}
});
多亏了“喵喵”。源-无法捕获工具栏主按钮单击事件
如果您希望单击切换按钮时触发onOptionsItemSelec()
方法,则需要使用不采用Toolbar
参数的ActionBarDrawerTougle
的四参数构造函数。
public ActionBarDrawerToggle(Activity activity,
DrawerLayout drawerLayout,
int openDrawerContentDescRes,
int closeDrawerContentDescRes)
否则,开关将直接处理抽屉的打开/关闭。
我正在使用Appcompat V7库中的新工具栏,我正在制作一个带有抽屉菜单和片段的应用程序。 在一些片段中,我不想显示汉堡包图标,而是箭头。。。很好,我是这样做的: 我的问题是:如何或在哪里我需要设置主页按钮lisener或什么我需要听“返回”按钮?我想调用主反压方法,并用汉堡图标设置抽屉菜单图标...
在这些Android文档的帮助下。我正在尝试做一个操作栏后退按钮。我得到一个操作栏后退按钮,如下图: 输出: 但我的问题是在看了画廊的图片后,我按下了动作栏后退按钮。 然后它不工作了。但它必须回到上一页。 下面列出了代码。 厨房活动。java: GalleryDetailFragment。java: 如果你知道如何解决这些问题,任何人都可以帮助我。谢谢你。
我试图在中间显示我的工具栏标题,为此我使用以下答案中给出的方法:-工具栏中心标题 但是,当我通过以下代码在我的中启用后退按钮时: 工具栏的标题不显示在中间,但向右稍微偏离中心。 如何实现居中标题而不受后退按钮或菜单栏的影响?
我在这件事上完全被难住了。我有一个活动C,当我试着按下后退按钮时,它工作了。但是,当我使用操作栏中的home/up按钮时,它就会崩溃(请参见下面的错误)。下面是我的代码中处理备份/备份按钮的部分。 活动C: 错误: 这是否与到达活动C有两种可能的方式有关?要么是-
在此对话框您可以指定当浏览磁盘文件夹 (“在压缩文件外部时显示”选项) 或查看压缩文件内容 (“在压缩文件内部时显示”选项 ) 时,要显示哪一些工具栏按钮。可以改变按钮的顺序,只要选择您希望移动的按钮并按下“上移”或“下移”来改变它们的位置。如果您要恢复默认工具栏配置,按下“默认”按钮。 “分隔符”按钮在选择的当前按钮前插入一个分隔符线。如果您要移除一个分隔符,或者取消它的选择状态,或者再次按下“
我不能改变返回按钮的颜色。我用的是工具栏材质设计。在我的应用程序中,我应用了工具栏的黑色背景,但默认情况下,背面设计是黑色的,这就是为什么我只想更改此返回按钮的颜色。请给我解决办法。 非常感谢。