【发布时间】:2015-05-22 05:10:16
【问题描述】:
我有一个片段,其中启用了操作栏后退按钮。
代码:
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
setHasOptionsMenu(true);
actionBar = ((MainActivity)getActivity()).getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setCustomView(R.layout.custom_action_bar);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = mInflater.inflate(R.layout.fragment_layout, container, false);
return view;
}
在上面的代码中,actionBar.setDisplayHomeAsUpEnabled(true); 启用了 Action Bar 中的后退按钮,但我们如何检测点击它?
我查看了许多示例并尝试了以下方法,但仍然无法正常工作:
在片段中:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Toast.makeText(getActivity(), "Back", Toast.LENGTH_LONG).show();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
片段中显示的后退按钮也是黑色的,我需要白色或自定义颜色的返回按钮,我该如何更改?
【问题讨论】:
-
onOptionSelectde(MenuItem item) 甚至用于菜单项,并且使用 actionBar.setDisplayHomeAsUpEnabled(true) ,它会自动返回设施..不要通过它的点击事件....
-
@VidhiTrivedi 当我点击它时它什么也没做,那么我下一步要检查我做错了什么?
-
我也面临同样的问题,有人找到解决方案了吗?无法检测到 android.R.id.home 事件
标签: android android-fragments android-actionbar-compat