横滑りの材料設計

まず第一に私が言うことを、このブログの内容を絵のためにここに出てきます。
書き込み絵は、ここで説明しました
また、この関数は非常に一般的である、あなたは左の画面と携帯電話を使用して右の端をスライドさせたときに、別のページがあるでしょうで、通常の状況下では、このページには、自分の個人情報を配置します。
だから、それを達成するためにどのようにこの機能?

まず第一に、我々はいくつかのコントロールでマテリアルデザインを使用することを知っておく必要があります。ここでは、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であるので、あなたは私が間違った場所を記述する必要があることを感じた場合、私たちは一緒に探索することができます。
書き込み絵は、ここで説明しました

公開された37元の記事 ウォン称賛10 ビュー10000 +

おすすめ

転載: blog.csdn.net/OneLinee/article/details/78397122
おすすめ