0
でツールバーの下にある

みなさん、こんにちは、ナビゲーション引き出しは、Android

私はAndroidのプログラミングの新人だと、現在のチュートリアル・コードの多かれ少なかれパッチワークで練習アプリに取り組んでいます。

今はツールバーの下にナビゲーションドロワーがあります。マテリアルデザインガイドラインと一貫しており、ツールバーの上にナビゲーションドロワーがあるようにxml階層を再調整したいと思います。それは単純な十分な仕事のように思えますが、私の人生では私はそれを得ることができません。

誰もが提案を提供できますか?

<?xml version="1.0" encoding="utf-8"?> 
 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 
    xmlns:apps="http://schemas.android.com/apk/res-auto" 
 
    android:layout_width="match_parent" 
 
    android:layout_height="match_parent" 
 
    android:orientation="vertical" 
 
    android:background="@color/background_color"> 
 

 
    <android.support.v7.widget.Toolbar 
 
     xmlns:android="http://schemas.android.com/apk/res/android" 
 
     android:id="@+id/toolbar" 
 
     android:layout_width="match_parent" 
 
     android:layout_height="wrap_content" 
 
     android:background="@color/primary_color" 
 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
 
     apps:title="@string/app_name"/> 
 

 
    <android.support.v4.widget.DrawerLayout 
 
     xmlns:android="http://schemas.android.com/apk/res/android" 
 
     xmlns:apps="http://schemas.android.com/apk/res-auto" 
 
     android:id="@+id/drawer_layout" 
 
     android:layout_width="match_parent" 
 
     android:layout_height="match_parent"> 
 

 
     <FrameLayout 
 
      android:id="@+id/frame_layout" 
 
      android:layout_width="match_parent" 
 
      android:layout_height="match_parent" 
 
      android:orientation="vertical"> 
 
     </FrameLayout> 
 

 
     <android.support.design.widget.NavigationView 
 
      xmlns:android="http://schemas.android.com/apk/res/android" 
 
      xmlns:apps="http://schemas.android.com/apk/res-auto" 
 
      android:id="@+id/navigation_view" 
 
      android:layout_width="wrap_content" 
 
      android:layout_height="match_parent" 
 
      android:layout_gravity="start" 
 
      apps:itemTextColor="#000" 
 
      android:fitsSystemWindows="true" 
 
      apps:headerLayout="@layout/navigation_header" 
 
      apps:menu="@menu/drawer_menu"/> 
 

 
    </android.support.v4.widget.DrawerLayout> 
 

 
</LinearLayout>

package android.dohyun.projectannie; 
 

 
import android.os.Bundle; 
 
import android.support.design.widget.NavigationView; 
 
import android.support.v4.app.FragmentManager; 
 
import android.support.v4.app.FragmentTransaction; 
 
import android.support.v4.widget.DrawerLayout; 
 
import android.support.v7.app.ActionBarDrawerToggle; 
 
import android.support.v7.app.AppCompatActivity; 
 
import android.support.v7.widget.Toolbar; 
 
import android.view.MenuItem; 
 

 
public class MainActivity extends AppCompatActivity { 
 

 
    DrawerLayout mDrawerLayout; 
 
    NavigationView mNavigationView; 
 
    FragmentManager mFragmentManager; 
 
    FragmentTransaction mFragmentTransaction; 
 

 
    @Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     setContentView(R.layout.activity_main); 
 

 
     mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
 
     mNavigationView = (NavigationView) findViewById(R.id.navigation_view); 
 

 

 

 
     mFragmentManager = getSupportFragmentManager(); 
 
     mFragmentTransaction = mFragmentManager.beginTransaction(); 
 
     mFragmentTransaction.replace(R.id.frame_layout, new NotesFragment()).commit(); 
 

 
     mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 
 
      @Override 
 
      public boolean onNavigationItemSelected(MenuItem menuItem) { 
 
       mDrawerLayout.closeDrawers(); 
 

 
       if(menuItem.getItemId() == R.id.menu_notes) { 
 
        FragmentTransaction fragmentTransactionNotes = mFragmentManager.beginTransaction(); 
 
        fragmentTransactionNotes.replace(R.id.frame_layout, new NotesFragment()).commit(); 
 
       } 
 
       if(menuItem.getItemId() == R.id.menu_folders) { 
 
        FragmentTransaction fragmentTransactionFolders = mFragmentManager.beginTransaction(); 
 
        fragmentTransactionFolders.replace(R.id.frame_layout, new FoldersFragment()).commit(); 
 
       } 
 
       if(menuItem.getItemId() == R.id.menu_trash) { 
 
        FragmentTransaction fragmentTransactionTrash = mFragmentManager.beginTransaction(); 
 
        fragmentTransactionTrash.replace(R.id.frame_layout, new TrashFragment()).commit(); 
 
       } 
 
       if(menuItem.getItemId() == R.id.menu_settings) { 
 
        FragmentTransaction fragmentTransactionSettings = mFragmentManager.beginTransaction(); 
 
        fragmentTransactionSettings.replace(R.id.frame_layout, new SettingsFragment()).commit(); 
 
       } 
 
       if(menuItem.getItemId() == R.id.menu_info) { 
 
        FragmentTransaction fragmentTransactionInfo = mFragmentManager.beginTransaction(); 
 
        fragmentTransactionInfo.replace(R.id.frame_layout, new InfoFragment()).commit(); 
 
       } 
 

 
       return false; 
 
      } 
 
     }); 
 

 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
 
     ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.app_name, R.string.app_name); 
 

 
     mDrawerLayout.setDrawerListener(mDrawerToggle); 
 
     mDrawerToggle.syncState(); 
 

 
    } 
 
}

上記のコードは、ラタンによって書かれ、ここで見られるもののわずかに変更されたバージョンである:

​​

答えて

0

DrawerLayoutは、特別ですナビゲーションドロワーをサポートする

layout_gravityを持たない子ビューがメインビューです。子ビューはlayout_gravityです。 android:layout_gravity="start"はnavドロワーです。

これは、DrawerLayoutがトップレベルのビューグループであることを意味します。つまり、ToolbarのレイアウトをDrawerLayoutに配置します。

関連する問題