Android:我似乎无法让自定义工具栏的后退箭头像设备的物理后退箭头一样工作
Android: I can't seem to get my custom toolbar's back arrow to act like the device's physical back arrow
我实现了后退箭头并正常工作,而不是仅仅完成 activityB 并返回到用户在 activityA 中所在的上一个视图(片段)。相反,它会关闭 activityB 并重新加载 activityA,这意味着您必须返回几个菜单才能回到原来的位置。
物理后退箭头完全符合我的要求,因为它只是关闭了 activtyB 并将用户返回到他们移动到 activtyB 之前他们最初在 activtyA 中的位置。
这是我当前的工具栏后退箭头代码,但我可能只是没有完全理解物理后退箭头的工作原理。我感谢所有建议!
toolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
您需要重写 activity:
的 onOptionsItemSelected 方法
@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
if (menuItem.getItemId() == android.R.id.home) {
onBackPressed();
} else {
super.onOptionsItemSelected(menuItem);
}
return true;
}
对于每个 activity,您必须在 Android 清单文件中添加父 activity。
<activity
android:name="com.example.myfirstapp.ActivityC"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.myfirstapp.MainActivity" >
<!-- The meta-data element is needed for versions lower than 4.1 -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstapp.MainActivity" />
</activity>
如果您将 MainActivity 指定为 ActivityC 的父级,那么它将转到 MainActivity。如果您指定了 ActivityB,它将在单击 ActionBar 中的后退按钮时移动到 ActivityB。
有关更多信息,请参阅 here
我实现了后退箭头并正常工作,而不是仅仅完成 activityB 并返回到用户在 activityA 中所在的上一个视图(片段)。相反,它会关闭 activityB 并重新加载 activityA,这意味着您必须返回几个菜单才能回到原来的位置。
物理后退箭头完全符合我的要求,因为它只是关闭了 activtyB 并将用户返回到他们移动到 activtyB 之前他们最初在 activtyA 中的位置。
这是我当前的工具栏后退箭头代码,但我可能只是没有完全理解物理后退箭头的工作原理。我感谢所有建议!
toolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
您需要重写 activity:
的 onOptionsItemSelected 方法@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
if (menuItem.getItemId() == android.R.id.home) {
onBackPressed();
} else {
super.onOptionsItemSelected(menuItem);
}
return true;
}
对于每个 activity,您必须在 Android 清单文件中添加父 activity。
<activity
android:name="com.example.myfirstapp.ActivityC"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.myfirstapp.MainActivity" >
<!-- The meta-data element is needed for versions lower than 4.1 -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstapp.MainActivity" />
</activity>
如果您将 MainActivity 指定为 ActivityC 的父级,那么它将转到 MainActivity。如果您指定了 ActivityB,它将在单击 ActionBar 中的后退按钮时移动到 ActivityB。
有关更多信息,请参阅 here