学习使用Material Design控件(一)
程序员文章站
2022-07-11 23:18:16
google 发布的material design支持库,对我们的app设计有很大的影响,如果重新设计app,支持库应该直接用v4提升到v7了,我们可以用toolbar代替...
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,以后慢慢加入其他控件的使用。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。