まず第一に私が言うことを、このブログの内容を絵のためにここに出てきます。
また、この関数は非常に一般的である、あなたは左の画面と携帯電話を使用して右の端をスライドさせたときに、別のページがあるでしょうで、通常の状況下では、このページには、自分の個人情報を配置します。
だから、それを達成するためにどのようにこの機能?
まず第一に、我々はいくつかのコントロールでマテリアルデザインを使用することを知っておく必要があります。ここでは、2つの直接コントロール内に配置することができDrawerLayoutレイアウトで言っています。
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_below="@id/toolbar"
android:layout_width="match_parent"
android:layout_height="550dp"
/>
</RelativeLayout>
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
app:menu="@menu/nav_menu"
app:headerLayout="@layout/nav_header"/>
</android.support.v4.widget.DrawerLayout>
ここでは、次のレイアウトを設定する方法であることを取らなければなりません。私たちが最初にDrawerLayout RelativeLayoutサブレイアウトとNavigationViewコントロールにレイアウトの内側に配置され、ナビゲーションコントロールを使用すると、私たちの周りにスライドしたときに表示される別のページです。その後RelativeLayoutは、内部のレイアウトツールバーコントロールを配置し、BaiduはMapViewのコントロールをマップします。
しかし、別のページでは、我々が観察することができ、理由もなくコンテンツは表示されないことがあります。
app:menu="@menu/nav_menu"
app:headerLayout="@layout/nav_header"
ナビゲーション中に、我々は他の二つの小さなのXMLレイアウトを配置することをこれは示しています。
このように、誰もがそれを理解します。
残りは二つの小さなレイアウトを書くことで、私たちは、まず以下のレイアウト、下のメニューで新しいnav_menu.xmlを書きました。そして、ここではいくつかの項目を記述します。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_photo"
android:icon="@drawable/nav_call"
android:title="照相机"/>
<item
android:id="@+id/nav_friends"
android:icon="@drawable/nav_friends"
android:title="相册"/>
<item
android:id="@+id/nav_location"
android:icon="@drawable/nav_location"
android:title="位置"/>
<item
android:id="@+id/nav_mail"
android:icon="@drawable/nav_mail"
android:title="邮箱"/>
<item
android:id="@+id/nav_task"
android:icon="@drawable/nav_task"
android:title="Task"/>
</group>
</menu>
項目は、グループの内側に配置されている、我々はアンドロイド使用することに注意してください:checkableBehavior =「シングルは、」ここに項目を設定するためには、唯一の国家ラジオです。
私たちは、レイアウトに次のように書いた別のレイアウト、新しいnav_header.xmlは
、このレイアウトでは、我々はCircleImageViewコントロールの使用に注意を払う必要があり、この制御は、円形の画像に変換することができ、画像の一部です。しかし、このコントロールを使用している場合、我々はbuild.gradleを追加依存ライブラリを追加する必要があります
compile 'de.hdodenhof:circleimageview:2.1.0'
この説明が終わった後、私たちは何も困難を言うために、すべての後に、コードを掲載します
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="180dp"
android:background="?attr/colorPrimary">
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@drawable/nav_icon"
android:layout_centerInParent="true"/>
<TextView
android:id="@+id/mail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="1**08***[email protected]"
android:textColor="#FFF"
android:textSize="18sp"
/>
<TextView
android:id="@+id/nav_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/mail"
android:text="张**"
android:textColor="#FFF"
android:textSize="18sp"
/>
</RelativeLayout>
ここではRelativeLayoutのレイアウトを使用することをお勧めします。
レイアウトはこちらになり、残りは変更されない活動です。
AはDrawerLayout、NavigationViewオブジェクトをインスタンス化します。
第二には、ナビゲーションにクリックイベントを追加します。(ここで私は、すべての後、私は主に古い知識を確認し、クリックイベントを追加し、クリックイベントを追加するために自分の話します)
private DrawerLayout mDrawerLayout;
mDrawerLayout=(DrawerLayout)findViewById(R.id.drawer_layout);
NavigationView navigationView=(NavigationView)findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener(){
@Override
public boolean onNavigationItemSelected(MenuItem item){
switch (item.getItemId()){
case R.id.nav_photo:
********
break;
case R.id.nav_location:
*******
break;
*******
*******
default:
break;
}
return true;
}
});
さて、ここで我々は終わったが、今私たちはNavigationViewの内部のいずれかをクリックして、イベントへの応答はありません。
私は自分のアイデアに応じて、クリックイベントの後にいくつかのロジックを記述し、それに従います。それはまだ白1であるので、あなたは私が間違った場所を記述する必要があることを感じた場合、私たちは一緒に探索することができます。