##一、描述
此文章说明Material Design类型的控件使用说明。

##二、控件使用方法

###1. TabLayout + ViewPager

<LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><android.support.design.widget.TabLayoutandroid:id="@+id/tabs"android:layout_width="match_parent"android:background="?colorPrimary"android:layout_height="wrap_content"android:paddingBottom="4.0dip"app:tabIndicatorColor="@color/colorAccentReal"  //Tab指示器的颜色app:tabBackground="?selectableItemBackgroundBorderless"app:tabMinWidth="@dimen/tablayout_indicator_size_min" //Tab的宽度app:tabMaxWidth="@dimen/tablayout_indicator_size_max"app:tabSelectedTextColor="@color/colorPrimaryTextWhite" //Tab选中的选项卡文字的颜色app:tabTextColor="@color/colorSubTextWhite"app:tabGravity="center"app:tabMode="fixed" //两个模式 scrollable :代表tab自适应宽度 fixed:固定宽度,平分宽度android:tag="bg_primary_color"/><android.support.v4.view.ViewPagerandroid:id="@+id/content_viewPager"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#fff" /></LinearLayout>复制代码
<style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title"><item name="android:textSize">12sp</item>
</style>
复制代码

代码

contentViewPager.setAdapter(new PagerFragmentAdapter(getSupportFragmentManager())); //ViewPager设置适配器
tabLayout.setupWithViewPager(contentViewPager); //TabLayout和VIewpager结合
//tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE); //设置他的模式,如果需要选项卡自适应宽度的话
复制代码

并且在适配器中重写Tab文本标题:

@Overridepublic CharSequence getPageTitle(int position) {return titles[position];}
复制代码

重写Tab图片标题

 @Overridepublic CharSequence getPageTitle(int position) {Drawable image = MainActivity.this.getResources().getDrawable(imageResId[position]);image.setBounds(0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight());SpannableString sb = new SpannableString(" ");ImageSpan imageSpan = new ImageSpan(image, ImageSpan.ALIGN_BOTTOM);sb.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);return sb;}
复制代码

TabLayout控制Item选中的背景色 解决方案:就是声明一个Secetor,点击和正常的颜色,然后再声明一个style,最后运用在TabLayout上就可以了

 <style name="MyTabLayout" parent="android:Widget"><item name="tabBackground">@drawable/bg_person_tab_background</item><item name="tabIndicatorColor">#ff00ff</item><item name="tabIndicatorHeight">0dp</item></style>
复制代码

http://blog.csdn.net/u012045061/article/details/53423857

###2. FloatingActionButton

<android.support.design.widget.FloatingActionButtonandroid:id="@+id/fab"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_alignParentRight="true"android:layout_gravity="bottom|end"android:layout_margin="25dp"android:src="@mipmap/ic_launcher"app:backgroundTint="#31B566" //背景颜色app:elevation="10dp" //阴影深度app:fabSize="normal" //大小 另一个是 miniapp:pressedTranslationZ="50dp" //按下的阴影深度app:rippleColor="@color/colorAccent"  />
复制代码

###3. AppCompatSpinner

<android.support.v7.widget.AppCompatSpinnerandroid:id="@+id/main_spinner"android:layout_width="200dp"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:overlapAnchor="false"    //这个属性是让下拉框显示在这个控件的下面/>
复制代码

代码赋值

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mainSpinner.setAdapter(arrayAdapter);
复制代码

###4. Toolbar
布局 ```


下面这个style是为了让标题栏的三个点成为白色
复制代码
设置标题字体颜色(可加)
复制代码
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"><!-- Customize your theme here. --><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item><item name="android:textColorPrimary">#968e48</item> <!--标题字体颜色-->
</style>
复制代码
ActionBar的标题menu文件
复制代码
<itemandroid:id="@+id/action_settings"android:icon="@drawable/ic_menu_send"android:orderInCategory="100"android:title="@string/action_settings"app:showAsAction="always" />
<itemandroid:id="@+id/search"android:icon="@mipmap/ic_launcher"android:title="dd"app:actionViewClass="android.support.v7.widget.SearchView"app:showAsAction="collapseActionView|always" />
复制代码

``` 创建菜单,并且对搜索按钮进行处理 ``` // 创建关联菜单 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu);

    MenuItem searchItem = menu.findItem(R.id.search);SearchView mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem);//设置搜索框hint内容mSearchView.setQueryHint("输入要搜索的内容...");SearchView.SearchAutoComplete textView = (SearchView.SearchAutoComplete)mSearchView.findViewById(R.id.search_src_text);//设置搜索框中输入文字的颜色textView.setTextColor(Color.BLACK);//搜索内容监听mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {@Overridepublic boolean onQueryTextSubmit(String query) {Toast.makeText(MainActivity.this, query, Toast.LENGTH_SHORT).show();return false;}@Overridepublic boolean onQueryTextChange(String newText) {Log.d("onQueryTextChange", newText);return false;}});return true;
}
复制代码
Menu点击事件
复制代码

toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { String msg = ""; switch (item.getItemId()) { case R.id.action_ball: msg += "Click ball"; break; case R.id.action_tip: msg += "Click action_tip"; break; case R.id.action_menu: msg += "Click setting"; break; } Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); return false; } });

代码
复制代码

toolbar.setTitle("标题");//设置标题,必须在setSupportActionBar方法之前 setSupportActionBar(toolbar); toolbar.setNavigationIcon(R.mipmap.ic_launcher);//设置标题最左的图标 toolbar.setLogo(R.mipmap.ic_launcher_round); //设置一个Logo在左边图标的 右侧 toolbar.setSubtitle("SubTit"); //设置子标题,在标题的下面

</br>
###5. 回退按钮1 在布局的ActionBar中添加返回键图片
复制代码

app:navigationIcon="@drawable/ic_back"

2 在代码中处理返回事件
复制代码

@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { finishAfterTransition(); } else { finish(); } break; } return super.onOptionsItemSelected(item); }

</br>
###6. DrawerLayout侧滑
</br>
直接用官方给的侧滑模版就好
复制代码

转载于:https://juejin.im/post/5b3ac633518825621e405f14

Material Design使用集合相关推荐

  1. android6.0进入Material Design时代

    Material Design 官方Material Design详细介绍文档:http://www.google.com/design/spec/material-design/introducti ...

  2. 【Android】进入Material Design时代

    由于本文引用了大量官方文档.图片资源,以及开源社区的Lib和相关图片资源,因此在转载的时候,务必注明来源,如果使用资源请注明资源的出处,尊重版权,尊重别人的劳动成果,谢谢! Material Desi ...

  3. Android Material Design 系列之 BottomNavigationView + ViewPager + Fragment + BadgeView 开发详解

    前言 BottomNavigationView 是 Material Design 提供的一个标准底部导航栏的实现,可以轻松的实现导航栏菜单之间的切换与浏览.底部导航使用户更方便的查看和切换最高层级的 ...

  4. Material Design 之Style(三)

    1.色彩 Material Design (实质化设计)中的色彩灵感来自大胆的颜色.阴影和高光,与寂静的环境形成鲜明的对比,更能让设计获得活力. 1.1 调色板 此调色板包含主要和重点颜色,可用于说明 ...

  5. 2017 Material design 第三章第三节《图像》

    三.图像(Imagery) 图像不仅是一种装饰,它还是一种能够帮助用户理解以及区分你产品的强大工具. 大胆.形象.有意义的图像能够帮助你吸引用户. 无论气氛是压抑.柔和还是明亮.多彩,以下的设计准则以 ...

  6. 开启Fluter基础之旅二-------Future再论、常用组件、Material Design风格组件学习

    Future再论: 这里在继续往下学习之前,先来看一下Dart语言关于Event-Queue和Microtask Queue需要注意的一个小点,这个在之前https://www.cnblogs.com ...

  7. Material Design的基础知识

      物理独立像素 即分辨率,屏幕的像素数量,对android设计没有多大用处,从像素角度出发,忽略了物理尺寸的概念.   wiki:   PX(像素),为影像显示的基本单位,译自英文"pix ...

  8. 详解Material Design体系组件

    iOS 或 Material Design的设计指南,都是按照组件的属性来系统介绍. 一般把Control翻译成控件,把Component翻译成组件.通俗的解释说法就是组件为多个元素组合而成,控件为单 ...

  9. Material Design(4)

    Material design Elevation & shadows 海拔与阴影 物体在 material design 与物体在现实世界里具有相似的表现形式 在现实世界里,物体能够被堆叠或 ...

  10. Material Design in Action — 哔哩哔哩动画 Android 客户端

    来源 http://www.jianshu.com/p/d1458e550b8e# 前言 哔哩哔哩动画是中国大陆的一家弹幕视频网站,在中国二次元用户中颇受欢迎. 哔哩哔哩动画之前推出过采用 Andro ...

最新文章

  1. 编程珠玑第八章——习题10查找数组中总和最接近0的子数组
  2. 临阵磨枪,血拼季网站优化的最后三板斧
  3. 一个统计编码时长的Vscode插件神器
  4. Julia OpenCV绑定简介
  5. flume案例-网络数据采集-Flume安装
  6. redis实战:使用redis实现自动补全
  7. java高可用grpc_GRPC java 分布式调用链跟踪实践
  8. C# Xamarin移动开发项目实战篇
  9. 简单的Java代码实现斗地主
  10. FPGA之JESD204B接口——总体概要 首片
  11. 输入年份和月份输出该月有多少天python_输入年份和月份,输出该月有多少天,判断这一天是该年的第几天...
  12. 继电器触点RC吸收电路
  13. 记:判断三个点是否在一条直线上
  14. 电脑键盘为什么无法输入
  15. 【视频+图文 直播贴】2014.9.9 Apple苹果发布会
  16. CString类详细介绍
  17. 如何评判刀片服务器性能,刀片服务器优点与刀片服务器缺点
  18. Blast中文手册(3)
  19. 用计算机收方怎么算,计算机结合全站仪 在定点定位收方中的应用.pdf
  20. 【Excel】excel函数

热门文章

  1. Ajxa验证用户和二级联动的实例(五)
  2. 判断服务是否开启,应用是否安装,并安装应用
  3. 像素,色彩,分辨率什么的
  4. NVisionXRFBXConverter(Beta版)实践课程
  5. 数据库存储 层次、树形结构 的标准做法
  6. Codeforces Round #184 (Div. 2)
  7. loadrunner11录制无法打开IE浏览器
  8. python 面向对象oop
  9. input框,需要隐式显示的时候,不让它自动填充的办法
  10. 解决permission denied错误