Android工具栏后退箭头无法点击

时间:2017-11-23 02:21:09

标签: android android-layout

我已经尝试了所有尝试让我的后箭头在我的工具栏上工作但我没有成功我已经尝试覆盖 onOptionsItemSelected 我也试过了这个帖子上的建议Up Navigation (Action Bar's back arrow) is not working for fragments并没有成功。我也在处理片段。

RegisterActivity

public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {

private Toolbar toolbar;

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.activity_register);
    ButterKnife.bind(this);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);
}

@Override
public void onClick(View view) {
    switch (view.getId()) {
        case ( R.id.button_accept_tos ) :
            /*
            Fragment inputUserFragment = new AcceptAgreementFragment();
            FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
            transaction.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out);
            transaction.replace(R.id.main_activity, inputUserFragment);
            transaction.addToBackStack(null);
            transaction.commit();
            */
            break;
    }
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            onBackPressed();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

清单

 <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".activity.MainActivity"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".activity.RegisterActivity"
        android:windowSoftInputMode="adjustPan|adjustResize"
        android:screenOrientation="portrait">
    </activity>

    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value=".activity.MainActivity"
        />

</application>

和我的activity_register xml

    <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="@color/ghostWhiteColor"
    android:fitsSystemWindows="true"
    tools:context="com.dae.market.dav.lux.activity.RegisterActivity">


    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:minHeight="?attr/actionBarSize"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:titleTextColor="@android:color/white"
        app:navigationIcon="@drawable/ic_arrow_back_white_24dp"
        android:background="?attr/colorPrimary">

        <TextView
            android:id="@+id/toolbar_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="test"
            android:textColor="@android:color/white"
            style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
            android:layout_gravity="center"
            />

    </android.support.v7.widget.Toolbar>



    <!--wizard>-->
    <FrameLayout
        android:id="@+id/fragment_register"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</android.support.design.widget.CoordinatorLayout>

3 个答案:

答案 0 :(得分:1)

您可以像这样获得导航后退按钮的点击事件。

Toolbar mToolbar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override public void onClick(View v) {
     // perform whatever you want on back arrow click 
    }
});

答案 1 :(得分:0)

将此添加到您的清单活动

android:theme="@style/AppTheme.NoActionBar">

你的样式文件必须是这样的

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

答案 2 :(得分:0)

试试这个......

在您的活动(清单)中使用此主题

<style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
</style>

在您的活动中

Toolbar toolbar;

//的onCreate

toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

然后为工具栏调用setNavigationOnClickListener

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed();
            }
        });

现在检查onClick on Back按钮......