snackbar 修改文本颜色

2016-08-19  本文已影响101人  _蘇芳_
 mMessageView = (TextView) findViewById(R.id.snackbar_text);
 mActionView = (Button) findViewById(R.id.snackbar_action);

见名知意,一个是信息文本,一个是动作文本
然而,他虽然提供给了修改actoinView的颜色方法

/**
     * Sets the text color of the action specified in
     * {@link #setAction(CharSequence, View.OnClickListener)}.
     */
    @NonNull
    public Snackbar setActionTextColor(@ColorInt int color) {
        final TextView tv = mView.getActionView();
        tv.setTextColor(color);
        return this;
    }

但是没有提供修改mMessageView颜色的方法,而且是私有的
可是呢,

/**
     * Returns the {@link Snackbar}'s view.
     */
    @NonNull
    public View getView() {
        return mView;
    }

那么我们可以拿到snackbar的view!!,那后面的事情就好办了

Snackbar snackbar = Snackbar.make(container, "hehe", Snackbar.LENGTH_SHORT)
                        .setAction("なに??", new View.OnClickListener() {
                            @Override
                            public void onClick(View view) {
                                Toast.makeText(MainActivity.this, "whattttt", Toast.LENGTH_SHORT).show();
                            }
                        })
                        .setActionTextColor(0xffffc0cb);
                //findViewById拿到文本textview,然后修改颜色就是了
                ((TextView)snackbar.getView().findViewById(R.id.snackbar_text)).setTextColor(0xffffc0cb);
                snackbar.show();
上一篇 下一篇

猜你喜欢

热点阅读