学习使用Material Design控件(一)
作者:贵公子 发布时间:2023-07-27 13:14:06
标签:Material,Design
Google 发布的Material Design支持库,对我们的APP设计有很大的影响,如果重新设计APP,支持库应该直接用V4提升到V7了,我们可以用Toolbar代替ActionBar,以及引入了RecycleView, SnakeBar等新控件。
我写了一个Demo来学习使用这些新控件。
新建项目,加入依赖包
我们使用Android Studio来开发这个Demo,在Android Studio新建一个项目,修改App Module的build.gradle文件,把compileSdkVersion和targetSdkVersion改为21,因为Material Design支持库需要Android 5.0以上作为编译SDK。
同时要加入相关依赖包design和RecyclerView支持包。
android {
compileSdkVersion 21
buildToolsVersion ”21.1.2”
defaultConfig {
applicationId ”materia.aswifter.com.materialexample”
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName ”1.0”
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), ‘proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: ‘libs', include: [‘*.jar'])
compile 'com.android.support:design:22.2.0'
compile 'com.android.support:recyclerview-v7:22.0.+'
}
新建Layout
新建activity_main.xml,在其中我们加入Toolbar和RecyclerView
<RelativeLayout 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.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="?attr/colorPrimaryDark">
</android.support.v7.widget.Toolbar>
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/toolbar"
android:scrollbars="none" />
</RelativeLayout>
新建Activity
新建MainActivity继承自AppCompatActivity
加入ToolBar
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
使用RecyclerView
RecyclerView是用来替换ListView的,它在里面封装ViewHolder的一些处理,
不过RecyclerView没有setOnItemClickListener方法,需要自己实现。
mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView);
// use this setting to improve performance if you know that changes
// in content do not change the layout size of the RecyclerView
mRecyclerView.setHasFixedSize(true);
// use a linear layout manager
mLayoutManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(mLayoutManager);
// specify an adapter (see also next example)
myDataset = new String[]{"JAVA", "Objective-C", "C", "C++", "Swift",
"GO", "JavaScript", "Python", "Ruby", "HTML", "SQL"};
mAdapter = new MyAdapter(myDataset);
mRecyclerView.setAdapter(mAdapter);
使用Snackbar
Snackbar的使用类似于Toast,我在RecyclerView的Item的点击事件中调用Snackbar,
显示TextView中的文字。
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
// each data item is just a string in this case
public TextView mTextView;
public ViewHolder(View v) {
super(v);
mTextView = (TextView) v.findViewById(R.id.textView);
v.setOnClickListener(this);
}
@Override
public void onClick(View view) {
Snackbar.make(view, mTextView.getText(), Snackbar.LENGTH_SHORT).show();
}
}
项目源码已发布到Github,以后慢慢加入其他控件的使用。
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- java * 类可以分为两种。 静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存
- 本文实例讲述了Android实现Service重启的方法。分享给大家供大家参考。具体如下:做APP的时候,我们可能需要一个后台服务一直在运行
- 前言大家都知道,equals和hashcode是java.lang.Object类的两个重要的方法,在实际应用中常常需要重写这两个方法,但至
- using System; using System.Collections.Generic; using System.Text; usi
- 循环结构分两大类,一类是当型,一类是直到型。当型:当布尔值表达式条件为True时,反复执行某语句,当布尔表达式的值为False时才停止循环,
- Android获取系统cpu信息,内存,版本,电量等信息 1、CPU频率,CPU信息:/proc/cpuinfo和/proc/stat 通过
- 全局配置无效依赖 <dependency> &n
- 1.下载AndroidStudioAndroidStudio官网下载地址:http://developer.android.com/intl
- 首先需要建立两个库进行测试,我这里使用的是master_test和slave_test两个库,两张库都有一张同样的表(偷懒,喜喜),表结构表
- 本文实例为大家分享了C# TrackBar拖动条改变滑块颜色的具体代码,供大家参考,具体内容如下原理1.TrackBar拖动条的滑块的默认颜
- 本文实例为大家分享了DigitalClock实现商品倒计时的具体代码,供大家参考,具体内容如下自定义DigitalClock控件:packa
- 错误表现如下图示,这两处可能报错发生原因一个pom文件里面,只能有有一对denpendencies标签,所有的配置都要放入这个depende
- 使用线程池的好处1、降低资源消耗可以重复利用已创建的线程降低线程创建和销毁造成的消耗。2、提高响应速度当任务到达时,任务可以不需要等到线程创
- SpringBoot 集成 activiti 基础环境搭建添加依赖<dependency> <groupId&g
- Spring @Configuration 和 @Component 区别一句话概括就是 @Configuration 中所有带 @Bean
- 一、前言跟很多小伙伴聊天,发现一个严重的问题,很多小伙伴横向发展的貌似很不错,很多技术都能说出一二,但是如果在某个技术上深挖一下就不行了,问
- 目录一、首先模型本身需要特殊处理二、编写Shader三、讲解先上图看看效果:下面详细分享一下制作步骤吧:一、首先模型本身需要特殊处理二、编写
- 上一篇文章讲解了Spring Cloud 整合 nacos 实现服务注册与发现,nacos除了有服务注册与发现的功能,还有提供动态配置服务的
- 本文实例讲述了C#多线程学习之生产者和消费者用法。分享给大家供大家参考。具体实分析如下:前面的文章说过,每个线程都有自己的资源,但是代码区是
- 目录请求参数校验:对于url中的参数对于request body请求体中的参数响应数据格式:全局异常处理统一定义异常响应码,便于查看使用sp