如何在没有drawerLayout的情况下使用ActionBarDrawerToggle功能?

时间:2015-02-05 11:07:29

标签: android android-actionbar android-toolbar

我在这里使用Android Reside菜单库: https://github.com/SpecialCyCi/AndroidResideMenu

现在,问题是residentMenu不是抽屉布局,但我想要actionBarDrawerToggle功能。我如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

您不能在没有DrawerLayout的情况下使用ActionBarDrawerToggle,因此您必须创建一个从DrawerLayout扩展的类,并且@Override openDrawer方法。我使用父活动的实例

package com.bonopark.*.*;
import android.content.Context;
import android.support.v4.widget.DrawerLayout;
import android.util.AttributeSet;
import android.view.View;

import com.bonopark.*.*.HomeActivity;

public class CustomDrawerLayout extends DrawerLayout {

    private HomeActivity ha;

    public CustomDrawerLayout(Context context) {
        super(context);
    }

    public CustomDrawerLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomDrawerLayout(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public void setParent(HomeActivity ha) {
        this.ha = ha;
    }

    @Override
    public void openDrawer(View view) {
        /* super.openDrawer(view); */
        // do whatever ..
    }

    @Override
    public void closeDrawer(View view) {
        super.closeDrawer(view);
    }
}

必须通过以下格式在XML文件上调用此自定义DrawerLayout:

<com.bonopark.*.*.libs.CustomDrawerLayout 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/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        tools:openDrawer="start"/>

答案 1 :(得分:0)

在工具栏中添加以下内容

      hello . are you . why and its ok .  
      hey . are you . why & its ok .

在您的活动中添加以下内容

    app:navigationIcon="@mipmap/ic_launcher"