欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

学习使用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来学习使用这些新控件。

学习使用Material Design控件(一)

新建项目,加入依赖包

我们使用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,以后慢慢加入其他控件的使用。

源码地址:materialdesignexample

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。