2016-12-05 2 views
1

アンドロイドスタジオでNavigationDrawerActivityを作成しました。しかし、今私はツールバーが必要ない。私はAPPA-bar_main.xmlからツールバーを削除します。ツールバーを使わずにアクティビティでActionBarDrawerToggleを追加する

<?xml version="1.0" encoding="utf-8"?> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" 
     android:layout_width="match_parent" 
     android:layout_height="56dp" /> 

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

<include layout="@layout/content_main" /> 

しかし、私はNavigationDrawerを表示する画面のTOP_LEFTにトグルボタンを必要とします。 私は、ツールバーを削除したので、私はコードの下に使用カント:

ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
      this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    drawer.setDrawerListener(toggle); 
    toggle.syncState(); 

、私は私の活動にトグルボタンを追加することができますか?

+0

のようなアクションバー を削除しますか? 'setDrawerListener'が' deprecated'になったので、 'addDrawerListener'を使ってください。 – Ironman

+0

トグルボタンのアイコンが表示されます – Paeez

+0

あなたのコメントを理解できない場合は – Ironman

答えて

1

ほとんどすべてのクリック可能なコンポーネントを使用して、引き出しを制御することができます。たとえば、ボタンです。あなたはボタンから下り坂カスタムコンポーネントを作成することができ、それは例えば、DrawerLayout.DrawerListenerインタフェースを実装しています:

<com.test.view.CustomDrawerButton 
    android:id="@+id/btnOpenDrawer" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentRight="true" 
    android:text="Open\ndrawer"/> 

とIn:あなたのフラグメントのレイアウトで、このコンポーネントを含めることができ

package com.test.view; 

import android.content.Context; 
import android.util.AttributeSet; 
import android.util.Log; 
import android.view.Gravity; 
import android.view.View; 
import android.widget.Button; 
import android.support.v4.widget.DrawerLayout; 
import com.test.MainActivity; 

public class CustomDrawerButton extends Button implements DrawerLayout.DrawerListener { 

    private DrawerLayout mDrawerLayout; 
    private int side = Gravity.LEFT; 

    public CustomDrawerButton(Context context) { 
     super(context); 
    } 
    public CustomDrawerButton(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 
    public CustomDrawerButton(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
    } 

    public void changeState(){ 
     if (mDrawerLayout.isDrawerOpen(side)){ 
      mDrawerLayout.closeDrawer(side); 
     }else{ 
      mDrawerLayout.openDrawer(side); 
     } 
    } 

    @Override 
    public void onDrawerSlide(View drawerView, float slideOffset) { 
     Log.e("BUTTOM DRAWER: ", "onDrawerSlide"); 
    } 
    @Override 
    public void onDrawerOpened(View drawerView) { 
     Log.e("BUTTOM DRAWER: ", "onDrawerOpened"); 
     setText("Close\ndrawer"); 
    } 
    @Override 
    public void onDrawerClosed(View drawerView) { 
     Log.e("BUTTOM DRAWER: ", "onDrawerClosed"); 
     setText("Open\ndrawer"); 
    } 
    @Override 
    public void onDrawerStateChanged(int newState) { 
     Log.e("BUTTOM DRAWER: ", "onDrawerStateChanged"); 
    } 

    public DrawerLayout getDrawerLayout() { 
     return mDrawerLayout; 
    } 
    public CustomDrawerButton setDrawerLayout(DrawerLayout mDrawerLayout) { 
     this.mDrawerLayout = mDrawerLayout; 
     return this; 
    } 
} 

フラグメントまたはあなたのCustomDrawerButtonを含むアクティビティ:

customDrawerButton = (CustomDrawerButton)view.findViewById(R.id.btnOpenDrawer); 
customDrawerButton.setDrawerLayout(mDrawer); 
customDrawerButton.getDrawerLayout().addDrawerListener(customDrawerButton); 
    customDrawerButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      customDrawerButton.changeState(); 
     } 
    }); 
0

は高さとレイアウトapp_bar_からアクションバー= 0dpの幅を設定してください。.. ので、コードに影響を与えませんが、三番目の引数 `toolbar`を削除し、それを確認し、この

 <android.support.v7.widget.Toolbar 
 
      android:id="@+id/toolbar" 
 
      android:layout_width="0dp" 
 
      android:layout_height="0dp" 
 
      android:background="?attr/colorPrimary" 
 
      app:popupTheme="@style/AppTheme.PopupOverlay" />

関連する問題