Android中SnackBar的简单使用

SnackBar是DesignSupportLibrary中的一个重要的控件,他会在你的界面下方提示一些关键信息,跟Toast差不多,但是它的功能更强大一些,它允许设定一个Action,当用户点击了SnackBar里面的按钮的时候,可以进行一些操作,所以,功能绝对是很强大的。下面我来介绍一下它的一些简单的使用,宝宝们准备好啦吗?我们Go~~~

最重要的,也是第一步,要导包、导包、导包~~~

compile 'com.android.support:design:23.0.1'
先来一个简单的用法

<pre style="background-color: rgb(255, 255, 255); font-family: Menlo;"><pre name="code" class="java"><span style="font-size:14px;">public class MainActivity extends AppCompatActivity {
    private Button btn;
    private Snackbar snackbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                /*
                和Toast使用方法类似,第一个参数是一个view,这里面我用的是我的Button,第二个参数是提示的内容,我写的“确定”,第三个参数是显示的时常
                Snackbar.LENGTH_INDEFINITE 是一直显示,只有右滑或者点击事件以后,可以移除
                Snackbar.LENGTH_SHORT 和Toast的显示时长属性一样
                Snackbar.LENGTH_LONG 和Toast的显示时长属性一样
                 */
                snackbar = Snackbar.make(btn,"确定",Snackbar.LENGTH_SHORT);
                snackbar.show();

            }
        });
    }
}</span>
 
 
 
 宝宝们,记得调用show()方法哈!!! 
 

再来一个自定义的

SnackBar.class并没有给我们提供接口让我们来修改文字的字体颜色,如果一定要去改,那你就想办法呗,下面就是一个方法,定义一个修改SnackBar描述文字颜色的方法(改其他属性也是一样的,宝宝自己发挥哈)

public class MainActivity extends AppCompatActivity {
    private Button btn;
    private Snackbar snackbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                /*
                setAction里面的参数
                第一个参数是可点击文字内容
                第二个参数是文字的点击事件
                 */
                //setActionTextColor(Color.BLUE)是修改Action字体颜色,这里我把"点击"改成蓝色啦
                snackbar = Snackbar.make(btn, "我点击啦哈", Snackbar.LENGTH_SHORT).setAction(
                        "点吧", new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                Intent intent = new Intent(MainActivity.this, ActivityTwo.class);
                                startActivity(intent);
                            }
                        }
                ).setActionTextColor(Color.BLUE);
                //调用方法修改描述文字颜色,这里把"我点击啦哈"改成啦绿色
                setSnackbarMessageTextColor(snackbar, Color.GREEN);
                snackbar.show();

            }
        });
    }

    //设置描述字体颜色
    public void setSnackbarMessageTextColor(Snackbar snackbar, int color) {
        View view = snackbar.getView();
        //这里的id用的是源码的id,不是自己的,不要乱改
        ((TextView) view.findViewById(R.id.snackbar_text)).setTextColor(color);
    }
}

代码基本就是这样的,宝宝们学会啦吗?哈哈哈~~~



猜你喜欢

转载自blog.csdn.net/LjingDong/article/details/51896687