ActionBarDrawerToggle无法应用于Android.support.v7.widget.Toolbar

Vim*_*kwa 7 android navigation-drawer android-toolbar

我一直得到错误说ActionBarDrawerToggle不能应用于v7.widget.Toolbar,因为我看了其他人如何修复类似的问题,他们现在都支持库文件,但错误不会因某种原因消失.

该错误表示ActionBarDrawerToggle()ActionBarDrawerToggle不能应用到android.support.v7.widget.Toolbar再根据实际参数R.id.drawable_ic_drawer (int)

import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.support.v7.widget.Toolbar;
Run Code Online (Sandbox Code Playgroud)

 mDrawerToggle = new android.support.v7.app.ActionBarDrawerToggle(
                getActivity(),                    /* host Activity */
                mDrawerLayout,                    /* DrawerLayout object */
                R.drawable.ic_drawer,             /* nav drawer image to replace 'Up' caret */
                R.string.navigation_drawer_open,  /* "open drawer" description for accessibility */
                R.string.navigation_drawer_close  /* "close drawer" description for accessibility */
        ) {
Run Code Online (Sandbox Code Playgroud)

据说造成错误的部分是R.drawer.ic_drawer.我该如何解决?

Poo*_*oja 9

ActionBarDrawerToggle构造函数如下.

android.support.v7.app.ActionBarDrawerToggle.ActionBarDrawerToggle(Activity activity,
DrawerLayout drawerLayout, 
Toolbar toolbar, 
int openDrawerContentDescRes, 
int closeDrawerContentDescRes)
Run Code Online (Sandbox Code Playgroud)

您正在传递R.drawable.ic_drawerdrawable而不是工具栏,这就是您收到此错误的原因.

创建工具栏并将其添加为操作栏,并将此工具栏传递给此构造函数.

  • @eMAD您引用的链接是使用`ActionBarDrawerToggle` v4.你可以在这里找到它https://developer.android.com/reference/android/support/v4/app/ActionBarDrawerToggle.html.它已被弃用.我的回答是根据`ActionBarDrawerToggle` v7.你可以在这里找到它https://developer.android.com/reference/android/support/v7/app/ActionBarDrawerToggle.html (2认同)