2

我想在 API 22 下使用 Android 中的快餐栏。但是我不能使用 mSnackbar.ishow(),因为它在 API 23 中可用。我需要在 22 下编译项目。我可以在 API 下使用哪些替换方法22?

    if (mSnackbar != null && mSnackbar.isShown()) {
             mSnackbar.dismiss();
            }
        }

      @Override
        public void onFailure(Throwable t) {
            if (mSnackbar == null || !mSnackbar.isShown()){
            mSnackbar = Snackbar.make(mCoordinatorLayout, R.string.snackbar_connection_failed, Snackbar.LENGTH_LONG);
                mSnackbar.setAction(R.string.snackbar_connection_failed_action, new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        startActivity(new Intent(Settings.ACTION_SETTINGS));
                    }
                })
                        .show();
4

2 回答 2

5

使用最新的设计支持库,它将可用:

dependencies {
    compile 'com.android.support:design:23+'
}
于 2015-12-14T06:51:17.683 回答
0

@oberflansch 的回答是正确的.. 使用更新的库。

还有一种更简单的解决方法: 在快餐栏上
使用callback以检查它何时关闭或显示......并修改其跟踪布尔变量

于 2016-01-01T12:15:06.983 回答