Как я могу установить действие для всего макета закусочной, а не только для текста?

У меня есть закусочная в моем приложении, и я хочу установить действие или установить прослушиватель кликов для всего его макета, но я искал пару дней и не нашел ответа. мой код закусочной с набором действий:

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);
        }
    });

и это действие работает только тогда, когда пользователь нажимает на текст qqqq, и я хочу работать, когда пользователь нажимает на весь макет закусочной, а не только на текст qqqq.


person Mohammad Davari    schedule 19.07.2018    source источник
comment
Я не думаю, что это хорошая практика - нажимать на весь макет.   -  person Shahzad Afridi    schedule 19.07.2018
comment
Было бы лучше, если бы вы сделали собственный макет закусочной, используя свой собственный макет.   -  person Shahzad Afridi    schedule 19.07.2018
comment
Вы думаете, что для этого лучше использовать кнопку?   -  person Mohammad Davari    schedule 19.07.2018


Ответы (1)


вы можете использовать -

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();
person DarShan    schedule 19.07.2018