Android
DesignSupportLibrary
SnackBar

SnackBarの文字色を自由に設定する方法

DesignSupportLibraryのSnackBarを使っていて、表示するテキストカラーを設定したい場面に遭遇しました。
で、以下のようにしました。もっといい方法がアレばぜひ教えていただきたいです。
サンプルとしてボタンをタップすると色が変わったSnackBarが出てくるだけのMainActivityを用意しました。

ezgif.com-video-to-gif.gif

以下コードです。

ChangeSnackBarTextColorSample
public class MainActivity extends AppCompatActivity {

    @Bind(R.id.root)
    LinearLayout root;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
    }

    private void showSnackBar(String msg, int color) {
        Snackbar snackbar = Snackbar.make(root, msg, Snackbar.LENGTH_SHORT);
        TextView textView = (TextView) snackbar.getView().findViewById(android.support.design.R.id.snackbar_text);
        textView.setTextColor(color);
        snackbar.show();
    }

    @OnClick(R.id.red)
    public void showRedTextSnackBar() {
        showSnackBar("赤です", Color.RED);
    }

    @OnClick(R.id.blue)
    public void showBlueTextSnackBar() {
        showSnackBar("青です", Color.BLUE);
    }

    @OnClick(R.id.white)
    public void showWhiteTextSnackBar() {
        showSnackBar("白です", Color.WHITE);
    }
}

まとめると、SnackBarの中で使用されている、TextViewを取得してボタンタップでその色を変えてあげてるだけです。
使いドコロはわかりませんが、TextViewがそのまま取得できているので、もちろん、アニメーションさせたりもできます。
(青色も赤色も見にくかった…)

お粗末でした。