[英]back button is not showing up using AppCompat support library's custom toolbar
i am working in a project where i need a custom toolbar as actionBar. 我在一个需要自定义工具栏作为actionBar的项目中工作。 i tried to use a custom toolbar in my layout file and define that activity theme as noActionBar in manifest file and use
getSupportActionBar().setHomeButtonEnabled(true);
我试图在布局文件中使用自定义工具栏,并将该活动主题定义为清单文件中的noActionBar,并使用
getSupportActionBar().setHomeButtonEnabled(true);
i also used getSupportActionBar().setDisplayShowHomeEnabled(true);
我还使用了
getSupportActionBar().setDisplayShowHomeEnabled(true);
and getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);
和
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);
but it didn't show up back button for me. 但它没有显示后退按钮。 then i also added
android:parentActivityName=".MainActivity
in my activity section in manifest file. still back button didn't show up. 然后我还在清单文件的我的活动部分中添加了
android:parentActivityName=".MainActivity
。仍然没有返回按钮。
here is my main activity file. 这是我的主要活动文件。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void next(View view) {
startActivity(new Intent(this, Main2Activity.class));
}
}
activity_main.xml file: activity_main.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.takmilul.actionbar.MainActivity">
<Button
android:id="@+id/next"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:onClick="next"
android:text="Next"/>
</LinearLayout>
Main2Activity file: Main2Activity文件:
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);
actionBar.setTitle("Second Activity");
}
}
activity_main2.xml file: activity_main2.xml文件:
<LinearLayout
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/activity_main2"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.takmilul.actionbar.Main2Activity">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.Dark">
</android.support.v7.widget.Toolbar>
</LinearLayout>
styles.xml file: styles.xml文件:
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
AndroidManifest.xml file AndroidManifest.xml文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.takmilul.actionbar">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".Main2Activity"
android:parentActivityName=".MainActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
</application>
</manifest>
and the build.gradle file like: 和build.gradle文件,如:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.example.takmilul.actionbar"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.4.0'
}
please help me to show up the back button and go to the previous page at pressing that back button. 请帮助我显示后退按钮,然后按该后退按钮转到上一页。
you have not set icon for back button. 您尚未为后退按钮设置图标。 set a navigation icon for it.
为其设置一个导航图标。 you can set it by xml file or java file.
您可以通过xml文件或java文件进行设置。 in xml file add line
在xml文件中添加行
app:navigationIcon="?attr/homeAsUpIndicator"
or in java file 或在Java文件中
getSupportActionBar().setHomeAsUpIndicator(getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
hope it works for you. 希望对你有效。
Just create a button in your activity_main2.xml file: 只需在activity_main2.xml文件中创建一个按钮:
<LinearLayout
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/activity_main2"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.takmilul.actionbar.Main2Activity">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.Dark">
<Button
android:id="@+id/back"
android:layout_width="30sp"
android:layout_height="30sp"
android:background="@drawable/back_arrow"
android:layout_marginLeft="10dp"
android:onClick="back"/>
</android.support.v7.widget.Toolbar>
And Main2Activity file: 和Main2Activity文件:
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);
actionBar.setTitle("Second Activity");
}
public void back(View view) {
finish();
}
}
package com.example.saloni; 包com.example.saloni;
import android.os.Bundle; 导入android.os.Bundle;
import android.support.v7.app.AppCompatActivity; 导入android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar; 导入android.support.v7.widget.Toolbar;
public class Main2Activity extends AppCompatActivity { 公共类Main2Activity扩展了AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fhg);
setToolbar();
}
private void setToolbar() {
setSupportActionBar(((Toolbar) findViewById(R.id.toolbar)));
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.back);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
} }
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textColorPrimary">#FFFFFF</item>
</style>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.