我要在我的应用程序中从ActionBar
迁移到Toolbar
。但我不知道如何像在Actionbar
上那样在Toolbar
上显示和设置后退箭头上的单击事件。
使用ActionBar
时,我调用mActionbar.setDisplayHomeAsUpEnabled(true)
。但是没有类似的方法。
有没有人曾经面对过这种情况,并以某种方式找到了解决它的方法?
发布于 2014-10-30 22:55:23
如果你使用的是ActionBarActivity
,那么你可以像这样告诉安卓使用Toolbar
作为ActionBar
:
Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);
然后调用
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
都会起作用的。您也可以在附加到ActionBarActivities
的片段中使用它,您可以像这样使用它:
((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayShowHomeEnabled(true);
如果您没有使用ActionBarActivities
,或者如果您想要获取未设置为SupportActionBar
的Toolbar
上的后退箭头,则可以使用以下方法:
mActionBar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_action_back));
mActionBar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//What to do on back clicked
}
});
如果您使用的是android.support.v7.widget.Toolbar
,则应将以下代码添加到AppCompatActivity
中
@Override
public boolean onSupportNavigateUp() {
onBackPressed();
return true;
}
发布于 2016-01-26 00:41:41
我看到了很多答案,但这里是我的答案,以前没有提到过。它通过8+接口工作。
public class DetailActivity extends AppCompatActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
// toolbar
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
// add back arrow to toolbar
if (getSupportActionBar() != null){
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// handle arrow click here
if (item.getItemId() == android.R.id.home) {
finish(); // close this activity and return to preview activity (if there is any)
}
return super.onOptionsItemSelected(item);
}
发布于 2016-07-12 12:54:42
有很多方法可以做到这一点,下面是我最喜欢的:
布局:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:navigationIcon="?attr/homeAsUpIndicator" />
活动:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// back button pressed
}
});
https://stackoverflow.com/questions/26651602
复制相似问题