android 导航 drawer/action 栏中的抽屉切换后退按钮设置
DrawerToggle backbutton setting in android navigation drawer/action bar
我正在使用 android v4 抽屉开关来实现导航抽屉。
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.menu_logo, R.string.drawer_open,
R.string.drawer_close)
我的问题是当我点击导航抽屉图标时我打开了一个抽屉布局(列表)。如果我单击任何项目,我将导航到该片段。这是我的代码。
case 1:
fragmentPopped = fragmentManager.popBackStackImmediate(
NewBikeSearchFragment.TAG, 0);
if (!fragmentPopped
&& fragmentManager
.findFragmentByTag(NewSearchFragment.TAG) == null) {
ft.setCustomAnimations(R.anim.grow_from_middle, R.anim.fade_out);
NewSearchFragment newfragment = new NewSearchFragment();
ft.replace(R.id.content_frame, newfragment,
NewSearchFragment.TAG);
ft.addToBackStack(NewSearchFragment.TAG);
ft.commit();
}
对于该片段导航,我想将 R.drawable.menu_logo
更改为 back icon 。我用谷歌搜索了一些教程和示例,但没有成功。你能告诉我如何在 V4
中完成这个任务吗?
请尝试拨打
getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
来自你的片段
如果这还不够,请添加此行
getActivity().getActionBar().setHomeAsUpIndicator(R.drawable.ic_back_button);
public static boolean isHomeFragment = true;
在片段中写这段代码
MainActivity.actionBar.setDisplayHomeAsUpEnabled(true);
MainActivity.actionBar.setHomeAsUpIndicator(R.drawable.ic_action_navigation_arrow_back);
MainActivity.isHomeFragment = false;
在 Home Fragment 中写入这段代码
MainActivity.isHomeFragment = true;
MainActivity.actionBar.setDisplayHomeAsUpEnabled(true);
MainActivity.actionBar.setHomeAsUpIndicator(R.drawable.menu_logo);
在mainactivity中写这个逻辑。这太完美了。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
if (isHomeFragment) {
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
}
else
{
onBackPressed();
}
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
我正在使用 android v4 抽屉开关来实现导航抽屉。
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.menu_logo, R.string.drawer_open,
R.string.drawer_close)
我的问题是当我点击导航抽屉图标时我打开了一个抽屉布局(列表)。如果我单击任何项目,我将导航到该片段。这是我的代码。
case 1:
fragmentPopped = fragmentManager.popBackStackImmediate(
NewBikeSearchFragment.TAG, 0);
if (!fragmentPopped
&& fragmentManager
.findFragmentByTag(NewSearchFragment.TAG) == null) {
ft.setCustomAnimations(R.anim.grow_from_middle, R.anim.fade_out);
NewSearchFragment newfragment = new NewSearchFragment();
ft.replace(R.id.content_frame, newfragment,
NewSearchFragment.TAG);
ft.addToBackStack(NewSearchFragment.TAG);
ft.commit();
}
对于该片段导航,我想将 R.drawable.menu_logo
更改为 back icon 。我用谷歌搜索了一些教程和示例,但没有成功。你能告诉我如何在 V4
中完成这个任务吗?
请尝试拨打
getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
来自你的片段
如果这还不够,请添加此行
getActivity().getActionBar().setHomeAsUpIndicator(R.drawable.ic_back_button);
public static boolean isHomeFragment = true;
在片段中写这段代码
MainActivity.actionBar.setDisplayHomeAsUpEnabled(true);
MainActivity.actionBar.setHomeAsUpIndicator(R.drawable.ic_action_navigation_arrow_back);
MainActivity.isHomeFragment = false;
在 Home Fragment 中写入这段代码
MainActivity.isHomeFragment = true;
MainActivity.actionBar.setDisplayHomeAsUpEnabled(true);
MainActivity.actionBar.setHomeAsUpIndicator(R.drawable.menu_logo);
在mainactivity中写这个逻辑。这太完美了。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
if (isHomeFragment) {
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
}
else
{
onBackPressed();
}
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}