我一直收到错误,说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;

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 */
) {

据说出错的部分是R.drawer.ic_drawer。我该如何解决?
答案 0 :(得分:9)
ActionBarDrawerToggle构造函数如下。
android.support.v7.app.ActionBarDrawerToggle.ActionBarDrawerToggle(Activity activity,
DrawerLayout drawerLayout,
Toolbar toolbar,
int openDrawerContentDescRes,
int closeDrawerContentDescRes)
您正在传递R.drawable.ic_drawer
drawable而不是工具栏,这就是您收到此错误的原因。
创建工具栏并将其添加为操作栏,并将此工具栏传递给此构造函数。
答案 1 :(得分:2)
另一种解决方法是导入import android.support.v4.widget.DrawerLayout
而不是import android.support.v7.widget.DrawerLayout
根据谷歌文档:http://developer.android.com/reference/android/support/v4/app/ActionBarDrawerToggle.html