首页 > 解决方案 > How can i set action for whole snackbar layout not just for a text?

问题描述

I have a snack bar in my app and I want set action or set click listener on whole its layout, but I searched couple days and I didn`t catch any answer. my set action snackbar code is:

snackbar = Snackbar.make(coordinatorLayout, "", Snackbar.LENGTH_LONG).setAction("qqqqq", new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            RestaurantDetails.this.startActivity(new Intent(RestaurantDetails.this, BuyBasket.class));
Snackbar.SnackbarLayout layout = (Snackbar.SnackbarLayout) snackbar.getView();
    TextView textView = (TextView) layout.findViewById(android.support.design.R.id.snackbar_text);
    textView.setVisibility(View.INVISIBLE);
    ImageView imageView = snackview.findViewById(R.id.buybasket);
    layout.setPadding(0, 0, 0, 0);
    layout.addView(snackview, 0);
        }
    });

and this setaction just work when user press on qqqq text and i want to work when user press on whole snackbar layout not just on text qqqq.

标签: androidandroid-snackbar

解决方案


您可以使用 -

Snackbar snackbar = Snackbar.make(coordinatorLayout, "No internet connection!", Snackbar.LENGTH_LONG);
View sbView = snackbar.getView();
sbView.setOnClickListener(new View.OnClickListener() {
      @Override
     public void onClick(View view) {

        } 
    });
snackbar.show();

推荐阅读