在我的工具栏上使用自定义后退箭头后,按下它时它不会返回。如何解决这个问题?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final String actionBarColor = "#FFD300";
ActionBar actionBar = getSupportActionBar();
if(actionBar != null) {
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor(actionBarColor)));
actionBar.setElevation(0);
Toolbar tBar = (Toolbar) findViewById(R.id.toolbar_yellow);
setSupportActionBar(tBar);
tBar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
}
}
toolbar_yellow.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/toolbar_yellow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="#FFD300"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:navigationIcon="@drawable/ic_action_navigation_arrow_back">
<TextView
android:id="@+id/toolbar_text"
android:text="yellow"
android:textColor="#000099"
android:textSize="@dimen/abc_text_size_title_material_toolbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="false"
android:maxLines="2"/>
</android.support.v7.widget.Toolbar>
答案 0 :(得分:0)
我认为你错过了这一行
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
UpDate:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final String actionBarColor = "#FFD300";
ActionBar actionBar = getSupportActionBar();
if(actionBar != null) {
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor(actionBarColor)));
actionBar.setElevation(0);
Toolbar tBar = (Toolbar) findViewById(R.id.toolbar_yellow);
setSupportActionBar(tBar);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_action_navigation_arrow_back);
tBar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
}
}
答案 1 :(得分:0)
我将您的代码简化为以下内容。由于您在Toolbar
布局文件中设置了toolbar_yellow.xml
颜色,因此无需在代码中进行设置。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar tBar = (Toolbar) findViewById(R.id.toolbar_yellow);
setSupportActionBar(tBar);
tBar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
}
如果有帮助,请告诉我。
答案 2 :(得分:-1)
如果您没有任何自定义后退按钮,即使您可以通过在manifest.xml中设置一行来显示它
$.map
用于显示自定义图标
<activity
android:name="com.example.myfirstapp.DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.myfirstapp.MainActivity" >
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstapp.MainActivity" />
</activity>
并将其作为
处理actionBar.setIcon(R.drawable.app_icon);