我知道有很多关于这个话题的问题,但我找不到一个可行的解决方案。
我希望在我按下工具栏中的左箭头时调用onBackPressed()。我使用的是appcompat-v7:23:1:0。左箭头在我的应用程序中的任何地方都有效,除了这里。我怀疑这与我从片段开始活动的事实有关。
Activity_A >启动Fragment_A (扩展SupportMapFragment) >,启动Activity_B。
当Activity_B中的后退箭头被按下时,我想返回到Fragment_A。目前,箭头对点击没有响应,onBackPressed不是从工具栏调用的,但它是在硬件后退按钮被按下时调用的。
我试着添加了
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}我在清单中添加了这个:
<activity
android:name=".activity.Activity_B"
android:windowSoftInputMode="stateHidden"
android:parentActivityName=".activity.Activity_A" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activity.Activity_A"
/>
</activity>(为了清楚起见,活动名称将被替换)
发布于 2016-01-21 21:05:30
这个问题似乎与我的activity_B的xml布局有关。
我在工具栏下面有一个scrollView。scrollView有一个android:layout_below="@id/contact_center",它的id不存在于该活动中。
我知道这听起来很奇怪,但在反复查看代码之后,我100%确定这导致onBackPress()没有响应。
因此,对于有类似问题的人,请注意您的xml布局,其中可能存在导致此奇怪问题的错误。另外,对其他活动的复制-粘贴代码也要非常谨慎;)
谢谢你的帮助。
发布于 2016-01-21 18:46:21
将此添加到您的onCreateOptionMenu中
int id = item.getItemId();
if (id == android.R.id.home) {
NavUtils.navigateUpFromSameTask(this);
return true;
}还要添加以下内容
getSupportActionBar().setDisplayShowHomeEnabled(true);发布于 2018-07-11 21:27:00
尝尝这个
public void setUpToolbar() {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("Toolbar Title");
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onSupportNavigateUp() {
onBackPressed();
return true;
}
@Override
public void onBackPressed() {
Toast.makeText(getApplicationContext(), "here", Toast.LENGTH_SHORT).show();
super.onBackPressed();
}https://stackoverflow.com/questions/34921396
复制相似问题