Material Design support

简单描述

IDE是Eclipse,帮助5.0以下的设备实现Material design效果的依赖包。
依赖包下载地址:http://pan.baidu.com/s/1dFwg8tN


TextInputLayout

方便设置hint和error提醒的布局,里面放的是EditText

效果
这里写图片描述

xml

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/textinputlayout">

    <EditText 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</android.support.design.widget.TextInputLayout>

Activity

...
TextInputLayout textInputLayout = (TextInputLayout) findViewById(R.id.textinputlayout);
        EditText editText = textInputLayout.getEditText();

        //  Hint字体大小改不了,颜色也改不了
        textInputLayout.setHint("请输入用户名");
        //  自带的错误提醒,同样无法修改
        editText.setError("你输入错啦!");

        //  出现在EditText下方
        //textInputLayout.setError("你输入错啦!"); 
...

FloatingActionButton

有漂浮效果的按钮

效果
这里写图片描述

xml直接使用

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
     xmlns:android="http://schemas.android.com/apk/res/android">


    <android.support.design.widget.FloatingActionButton
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_centerInParent="true"
    android:layout_height="wrap_content"
    android:background="@drawable/icon"
    />


</RelativeLayout>

Snackbar

使用方法类似于Toast,它出现在屏幕底部并且可以设置点击按钮和点击事件。

效果
这里写图片描述

Activity

button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                //  setAction可以使用多次,只是后面的会把前面的覆盖掉,使得前面的setAction失效!
                Snackbar.make(button, "我是Snackbar", 3000).setAction("open", new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        Toast.makeText(getApplicationContext(), "咋地", Toast.LENGTH_SHORT).show();

                    }
                }).show();

            }
        });

TabLayout

实现Viewpager那类型的效果,多了指示器效果和点击效果

效果
这里写图片描述

xml

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
     xmlns:android="http://schemas.android.com/apk/res/android">


   <android.support.design.widget.TabLayout
    android:id="@+id/tablayout"
    android:layout_width="match_parent"
    android:background="#1FBCD2"
    android:layout_height="48dp" />


</RelativeLayout>

Activity

TabLayout tabLayout = (TabLayout) findViewById(R.id.tablayout);
        // 设置文本在选中和为选中时候的颜色
        tabLayout.setTabTextColors(Color.BLACK, Color.WHITE);

        // 添加 Tab,默认选中
        tabLayout.addTab(tabLayout.newTab().setText("第一个"), true);
        tabLayout.addTab(tabLayout.newTab().setText("第二个"), false);
        tabLayout.addTab(tabLayout.newTab().setText("第三个"), false);

        //  联动
//      tabLayout.setTabsFromPagerAdapter(new PagerAdapter() {
//          
//          @Override
//          public boolean isViewFromObject(View arg0, Object arg1) {
//              // TODO Auto-generated method stub
//              return false;
//          }
//          
//          @Override
//          public int getCount() {
//              // TODO Auto-generated method stub
//              return 0;
//          }
//      });

搭配DrawerLayout使用,Navigation View是一个menu(菜单)

注意:在header.xml里面,布局的高度不能为match_parent,这样会导致header不显示!


效果:

这里写图片描述

使用:

xml

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:id="@+id/drawer_layout"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:fitsSystemWindows="true">
  <FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:text="主布局"
      android:gravity="center"
      android:textSize="30sp"
     />
  </FrameLayout>
  <android.support.design.widget.NavigationView
    android:id="@+id/navigation"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:headerLayout="@layout/header"
    app:menu="@menu/my_navigation_items" />
</android.support.v4.widget.DrawerLayout>

header.XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:background="#30469b">
    <TextView
        android:id="@+id/header_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="HeaderLayout"
        android:textColor="#ffffff"
        android:textSize="25sp" />
</RelativeLayout>

my_navigation_items

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.materialdesign.MainActivity" >

    <item
        android:orderInCategory="100"
        android:title="1"
       />

      <item
        android:orderInCategory="100"
        android:title="2"
       />

        <item
        android:orderInCategory="100"
        android:title="3"
       />

</menu>

转载于:http://www.tuicool.com/articles/aeQrYv3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值