NavigationView的学习

来源:互联网 发布:淘宝上如何复制链接 编辑:程序博客网 时间:2024/06/16 16:34




-------------------------------------------------------------------------------------


NavigationView
要导入一个包。 F4,选中dependency 选择+  选中 design()


修改Main_activity 里面的LinearLayout 为 <android.support.design.widget.NavigationView


<android.support.design.widget.NavigationView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="left|start"
        android:id="@+id/menu"
        >
    </android.support.design.widget.NavigationView>


添加自定义属性:
 添加这行xmlns:app="http://schemas.android.com/apk/res-auto"
 
然后 Close Project,再打开。


新建一个menu 的目录
新建一个menu的文件。navigation_menu


  <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="第一项" android:id="@+id/item_1"/>
<item android:title="第二项" android:id="@+id/item_2"/>
<item android:title="第三项" android:id="@+id/item_3"/>
<item android:title="第四项" android:id="@+id/item_4"/>
</menu>




添加 app:menu="@menu/navigation" 到下面


    <android.support.design.widget.NavigationView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="left|start"
        android:id="@+id/menu"
       
        app:menu="@menu/navigation"
        >
    </android.support.design.widget.NavigationView>


修改:MainAcitivty:
package com.kodulf.cehua;


import android.support.design.widget.NavigationView;
import android.support.v4.app.ActivityCompat;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.Toast;


public class MainActivity extends AppCompatActivity implements View.OnClickListener, NavigationView.OnNavigationItemSelectedListener {


    private DrawerLayout drawer;
    private NavigationView menu;
    private ActionBarDrawerToggle toggle;


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


        drawer = (DrawerLayout) findViewById(R.id.drawer);
        menu = (NavigationView) findViewById(R.id.main_menu);
//        menu = (LinearLayout) findViewById(R.id.menu);
//        menu.setOnClickListener(this);
//        显示Home
        toggle = new ActionBarDrawerToggle(this, drawer, 0, 0);
        //三条横线的Menu
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        toggle.syncState();
        drawer.setDrawerListener(toggle);//让DrawerLayout的动作影响上面的按钮
        menu.setNavigationItemSelectedListener(this);
    }


    /**
     * menu点击后DrawerLayout 变化
     * @param item
     * @return
     */
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if(toggle.onOptionsItemSelected(item)){
            return true;
        }
        return super.onOptionsItemSelected(item);
    }


    @Override
    public void onClick(View v) {


    }


    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        //return false;
        switch (item.getItemId()){
            case R.id.item_1:
                Toast.makeText(this,"first",Toast.LENGTH_LONG).show();
                break;
            case R.id.item_4:
                ActivityCompat.finishAffinity(this);
                break;
        }
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
//
//    @Override
//    public void onClick(View v) {
//        //drawer.closeDrawer(menu);
//        //drawer.closeDrawer(Gravity.START);//4.0一下是不能使用START的
//        drawer.closeDrawer(GravityCompat.START);//这样就可以了
//    }


}












把上面四项作为单选项:


<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item android:title="第一项" android:id="@+id/item_1"/>
        <item android:title="第二项" android:id="@+id/item_2"/>
        <item android:title="第三项" android:id="@+id/item_3"/>
        <item android:title="第四项" android:id="@+id/item_4"/>
        </group>
</menu>


默认选中
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item android:title="第一项" android:id="@+id/item_1" android:checked="true"/>
        <item android:title="第二项" android:id="@+id/item_2"/>
        <item android:title="第三项" android:id="@+id/item_3"/>
        <item android:title="第四项" android:id="@+id/item_4"/>
        </group>
</menu>




添加图片
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item android:title="第一项" android:id="@+id/item_1" android:icon="@mipmap/ic_launcher" android:checked="true" />
        <item android:title="第二项" android:id="@+id/item_2" android:icon="@mipmap/ic_launcher"/>
        <item android:title="第三项" android:id="@+id/item_3" android:icon="@mipmap/ic_launcher"/>
        <item android:title="第四项" android:id="@+id/item_4" android:icon="@mipmap/ic_launcher"/>
        </group>
</menu>




添加小分组:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item android:title="第一项" android:id="@+id/item_1" android:icon="@mipmap/ic_launcher" android:checked="true" />
        <item android:title="第二项" android:id="@+id/item_2" android:icon="@mipmap/ic_launcher"/>
        <item android:title="第三项" android:id="@+id/item_3" android:icon="@mipmap/ic_launcher"/>
        <item android:title="第四项" android:id="@+id/item_4" android:icon="@mipmap/ic_launcher"/>
        </group>
    <item android:title="小分组">
        <menu>
            <item android:id="@+id/group_1" android:title="设置"></item>
            <item android:id="@+id/group_2" android:title="我的"></item>
            <item android:id="@+id/group_3" android:title="退出"></item>
        </menu>
    </item>
</menu>


将字体设置大一些:app:itemTextAppearance="?android:textAppearanceLarge"


<android.support.design.widget.NavigationView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="left|start"
        android:id="@+id/main_menu"


        app:menu="@menu/navigation"
        app:itemTextAppearance="?android:textAppearanceLarge"
        >


---------------------------------------------------------
新建一个layout menu_header


高度设置一个定值:




<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="200dp"
    android:gravity="center"
    android:background="#600F">
<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@mipmap/ic_launcher"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="用户名"
        />
</LinearLayout>




然后添加app:headerLayout="@layout/menu_header"
<android.support.design.widget.NavigationView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="left|start"
        android:id="@+id/main_menu"
        app:headerLayout="@layout/menu_header"
        app:menu="@menu/navigation"
        app:itemTextAppearance="?android:textAppearanceLarge"
        >








+++++++++++++++++++++++++++++++++++++++++++++
ViewPager


<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:id="@+id/drawer"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<!--FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#F00"
    >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hello"
        />


</FrameLayout-->


    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#F00"
        android:orientation="vertical"
    >
    <android.support.v4.view.ViewPager
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/pager"
        />


</LinearLayout>
    <android.support.design.widget.NavigationView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="left|start"
        android:id="@+id/main_menu"
        app:headerLayout="@layout/menu_header"
        app:menu="@menu/navigation"
        app:itemTextAppearance="?android:textAppearanceLarge"
        >
    </android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>


----------------------------------------------------------------
0 0
原创粉丝点击