Android 自己实现 NavigationView [Design Support Library(1)]

本文介绍了如何在Android中自定义实现NavigationView,包括布局文件的编写、Activity的设置以及Sub Item支持可选中功能。通过设置菜单项的checkable属性和在OnNavigationItemSelectedListener中处理点击事件,实现了类似原生NavigationView的效果。最后,还展示了使用ListView代替NavigationView来实现类似功能的方法。
摘要由CSDN通过智能技术生成

android:layout_height=“wrap_content”

android:layout_alignParentBottom=“true”

android:layout_marginBottom=“16dp”

android:text=“http://blog.csdn.net/lmj623565791”/>

<TextView

android:id=“@+id/id_username”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_above=“@id/id_link”

android:text=“Zhang Hongyang”/>

<ImageView

android:layout_width=“72dp”

android:layout_height=“72dp”

android:layout_above=“@id/id_username”

android:layout_marginBottom=“16dp”

android:src=“@mipmap/icon”/>

<?xml version="1.0" encoding="utf-8"?>

<item

android:id=“@+id/nav_home”

android:icon=“@drawable/ic_dashboard”

android:title=“Home”/>

<item

android:id=“@+id/nav_messages”

android:icon=“@drawable/ic_event”

android:title=“Messages”/>

<item

android:id=“@+id/nav_friends”

android:icon=“@drawable/ic_headset”

android:title=“Friends”/>

<item

android:id=“@+id/nav_discussion”

android:icon=“@drawable/ic_forum”

android:title=“Discussion”/>

<item

android:icon=“@drawable/ic_dashboard”

android:title=“Sub item 1”/>

<item

android:icon=“@drawable/ic_forum”

android:title=“Sub item 2”/>

别放错文件夹哈~

布局文件写完了,基本就好了,是不是很爽~看似复杂的效果,写写布局文件就ok。

ps:默认的颜色很多是从当前的主题中提取的,比如icon的stateColor,当然你也可以通过以下属性修改部分样式:

app:itemIconTint=“”

app:itemBackground=“”

app:itemTextColor=“”

(二)Activity

最后是Activity:

package com.imooc.testandroid;

import android.os.Bundle;

import android.support.design.widget.NavigationView;

import android.support.v4.widget.DrawerLayout;

import android.support.v7.app.ActionBar;

import android.support.v7.app.ActionBarActivity;

import android.support.v7.widget.Toolbar;

import android.view.MenuItem;

public class NavigationViewActivity extends ActionBarActivity

{

private DrawerLayout mDrawerLayout;

private NavigationView mNavigationView;

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_navigation_view);

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 = getSupportAc

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值