0
public class MainActivity extends ActionBarActivity {
    private String[] drawerListItems;
    private ListView drawerListView;
    private DrawerLayout drawerlayout;
    private ActionBarDrawerToggle drawToggle;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);          

        drawerlayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawerListItems = getResources().getStringArray(R.array.DrawreMenue);
        drawerListView = (ListView) findViewById(R.id.slidermenu);
        Toolbar toolbar=(Toolbar)findViewById(R.id.toolbar);
        //getActionBar().setIcon(R.drawable.ic_launcher);
        drawerListView.setAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, drawerListItems));
       //drawerListView.setOnItemClickListener(this);
       drawerListView.setOnItemClickListener(new DrawerItemClickListener());

        drawToggle = new ActionBarDrawerToggle(this, drawerlayout,toolbar,  
                R.string.draw_open,  
                R.string.draw_close 
        ) {


            public void onDrawerClosed(View view) {
                super.onDrawerClosed(view);

            }    

            public void onDrawerOpened(View drawerView) {
                super.onDrawerOpened(drawerView);

            }
        } ;
       getSupportActionBar().setDisplayHomeAsUpEnabled(true);

       getSupportActionBar().setHomeButtonEnabled(true);
        getSupportActionBar().setIcon(R.drawable.ic_drawer);

        drawerlayout.setDrawerListener(drawToggle);
        drawToggle.syncState();
    }

我在 Android Studio 中使用此代码

minSdkVersion 8

targetSdkVersion 21

它显示抽屉图标,但单击它时不会打开抽屉列表,也不会在滑动打开时关闭它

4

2 回答 2

1

您需要再添加两个方法onPostCreateonConfigurationChanged

mDrawerToggle = new ActionBarDrawerToggle(
                this,                  /* host Activity */
                mDrawerLayout,         /* DrawerLayout object */
                R.drawable.ic_drawer,  /* nav drawer icon to replace 'Up' caret */
                R.string.drawer_open,  /* "open drawer" description */
                R.string.drawer_close  /* "close drawer" description */
                ) {

            /** Called when a drawer has settled in a completely closed state. */
            public void onDrawerClosed(View view) {
                super.onDrawerClosed(view);
                getActionBar().setTitle(mTitle);
            }

            /** Called when a drawer has settled in a completely open state. */
            public void onDrawerOpened(View drawerView) {
                super.onDrawerOpened(drawerView);
                getActionBar().setTitle(mDrawerTitle);
            }
        };

        // Set the drawer toggle as the DrawerListener
        mDrawerLayout.setDrawerListener(mDrawerToggle);

        getActionBar().setDisplayHomeAsUpEnabled(true);
        getActionBar().setHomeButtonEnabled(true);
    }

    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        // Sync the toggle state after onRestoreInstanceState has occurred.
        mDrawerToggle.syncState();
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        mDrawerToggle.onConfigurationChanged(newConfig);
    }

资源

于 2015-01-09T05:51:18.097 回答
0

首先,您需要找到要单击以打开 Drawer 的 Button 的 ID,然后只需将代码放入单击侦听器即可打开

mDrawerLayout.openDrawer(mDrawer);

并关闭抽屉放

mDrawerLayout.closeDrawer(mDrawer);
于 2015-01-07T18:14:14.553 回答