NavigationView+DrawerLayout实现侧滑栏效果
来源:互联网 发布:淘宝店铺设计师申请 编辑:程序博客网 时间:2024/05/02 05:38
什么是NavigationView? NavigationView 是design包里面的一个子控件,简单理解就是 NavigationView 就是侧滑栏里面的一个布局效果,这个菜单整体上分为两部分,上面一部分叫做HeaderLayout,下面的那些点击项都是menu。其实这个效果,我们完全可以使用一个listview来搞定,但是没有必要,既然都有现成的,那为什么还要重复发明轮子呢?直接拿来用即可。
使用方法:
一、添加依赖,版本按需添加即可
compile 'com.android.support:design:22.2.0'
二、添加header_layout.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="200dp" android:orientation="vertical"> <ImageView android:id="@+id/iv" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:src="@drawable/timg"/></LinearLayout>
三、activity_main.xml
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout android:id="@+id/id_drawer_layout" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" > <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.Toolbar android:id="@+id/id_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> <TextView android:id="@+id/id_tv_content" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="HelloWorld" android:textSize="30sp"/> </RelativeLayout> <android.support.design.widget.NavigationView android:id="@+id/id_nv_menu" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="left" android:fitsSystemWindows="true" app:headerLayout="@layout/header_layout" app:menu="@menu/main" /></android.support.v4.widget.DrawerLayout>三、menue.xml
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/favorite" android:icon="@mipmap/ic_launcher" android:title="收藏"/> <item android:id="@+id/wallet" android:icon="@mipmap/ic_launcher" android:title="钱包"/> <item android:id="@+id/photo" android:icon="@mipmap/ic_launcher" android:title="相册"/> <item android:id="@+id/file" android:icon="@mipmap/ic_launcher" android:title="文件"/></menu>
四、MainActivity
package gb.com.navigationview;import android.graphics.drawable.Drawable;import android.support.design.widget.NavigationView;import android.support.v4.view.GravityCompat;import android.support.v4.widget.DrawerLayout;import android.support.v7.app.ActionBar;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.support.v7.widget.Toolbar;import android.view.Menu;import android.view.MenuItem;import android.view.Window;import android.widget.Toast;public class MainActivity extends ActionBarActivity{ private DrawerLayout mDrawerLayout; private NavigationView mNavigationView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mDrawerLayout = (DrawerLayout) findViewById(R.id.id_drawer_layout); mNavigationView = (NavigationView) findViewById(R.id.id_nv_menu); Toolbar toolbar = (Toolbar) findViewById(R.id.id_toolbar); setSupportActionBar(toolbar); final ActionBar ab = getSupportActionBar(); ab.setHomeAsUpIndicator(R.drawable.menu); ab.setDisplayHomeAsUpEnabled(true); setupDrawerContent(mNavigationView); } private void setupDrawerContent(NavigationView navigationView) { navigationView.setNavigationItemSelectedListener( new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(MenuItem menuItem) { menuItem.setChecked(true); Toast.makeText(MainActivity.this, ""+menuItem.getTitle(), Toast.LENGTH_SHORT).show();menuItem.getTitle(); mDrawerLayout.closeDrawers(); return true; } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { if(item.getItemId() == android.R.id.home) { mDrawerLayout.openDrawer(GravityCompat.START); return true ; } return super.onOptionsItemSelected(item); }}
阅读全文
0 0
- NavigationView+DrawerLayout实现侧滑栏效果
- Android DrawerLayout+Toolbar+NavigationView(实现侧拉侧滑效果)
- 实现滑动菜单效果DrawerLayout+NavigationView
- 利用drawerlayout和NavigationView实现侧滑栏
- NavigationView+DrawerLayout实现侧拉抽屉效果
- DrawerLayout NavigationView结合使用实现漂亮的侧滑效果
- MaterialDesign学习笔记1:DrawerLayout+NavigationView实现抽屉效果
- Android DrawerLayout+ToolBar+NavigationView实现策划效果,沉浸式状态栏
- Material Design之DrawerLayout与NavigationView实现抽屉效果
- Android中DrawerLayout+Toolbar实现侧滑效果[DrawerLayout+ToolBar+NavigationView]
- android 开发 -- NavigationView和DrawerLayout实现 侧滑栏(Material Design)
- NavigationView+DrawerLayout
- DrawerLayout && NavigationView
- NavigationView和DrawerLayout实现侧滑菜单栏
- NavigationView+Drawerlayout+Toolbar实现侧滑菜单
- DrawerLayout 和NavigationView 实现抽屉式侧滑
- DrawerLayout + NavigationView实现侧滑菜单
- Android-NavigationView+DrawerLayout实现抽屉菜单
- 关于Spring中的<context:annotation-config/>配置
- QT 之 插件自定义编写
- CAS原理
- Spring boot中的属性配置文件小结
- yii2源码(1)--执行流程
- NavigationView+DrawerLayout实现侧滑栏效果
- C#小项目之登录界面1
- CSS margin 属性
- Spring-boot + atomikos + druid分布式事务配置
- C# 逆变与协变
- OPC UA --open62541学习
- AlertDialog用法
- std::set, std::list, std::vector在erase的区别
- 搭建基于以太坊的私有链环境