我们只需要在AS中添加引用即可:
compile 'com.android.support:design:23.3.0'
使用Snackbar
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:onClick="createSnackbar" android:text="snackba测试" android:layout_width="match_parent" android:layout_height="wrap_content"/> <android.support.design.widget.CoordinatorLayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true"/> </RelativeLayout>MainActivity package com.example.administrator.mysnackbar; import android.graphics.Color; import android.support.design.widget.CoordinatorLayout; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private CoordinatorLayout container; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); container = (CoordinatorLayout) findViewById(R.id.container); } public static void setSnackbarMessageTextColor(Snackbar snackbar, int color) { View view = snackbar.getView(); ((TextView) view.findViewById(R.id.snackbar_text)).setTextColor(color); } public void createSnackbar(View v) { Snackbar snackbar= Snackbar.make(container,"SnackbarTest", Snackbar.LENGTH_LONG).setAction("Action", new View.OnClickListener() { @Override public void onClick(View v) { Snackbar.make(container,"ActionClick",Snackbar.LENGTH_LONG).show(); } }); setSnackbarMessageTextColor(snackbar, Color.parseColor("#ff6699")); snackbar.show(); } }但是如何设置Snackbar的消息文字的颜色以及Action文字的颜色呢? 对于Action可以通过Snack的bar的公开APIsnackbar.setActionTextColor(int color)设置,但是使用的时候不太好用,但是没有找到设置消息文字颜色的API,但是在查看Snackbar.class的时候找到了一个方法:
public View getView() { return this.mView; }getView()返回的mView就是SnackbarLayout实例,这个类的布局最终是layout_snackbar_include.xml因此我们可以写下面的帮助方法实现设置消息文本的颜色。
public static void setSnackbarMessageTextColor(Snackbar snackbar, int color) { View view = snackbar.getView(); ((TextView) view.findViewById(R.id.snackbar_text)).setTextColor(color); } 源码下载 喜欢的朋友点个赞吧