Кнопка в PopupWindow становится прозрачной при быстром нажатии?

1

У меня есть PopupWindow, в котором есть кнопки буксировки. Они работают так, как ожидалось, и при нажатии и удержании переходит в нажатое состояние, а затем выполняет действие. Проблема возникает, когда я просто быстро нажимаю кнопку и отпускаю. Это приводит к тому, что кнопка станет прозрачной, а также фон в PopupWindow. Это происходит только тогда, когда пользователь нажимает и не удерживает его. Любые идеи, что может быть причиной этого?

Код для показа всплывающих окон:

    final String path = argpath;
    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View layout = inflater.inflate(R.layout.productpopup, null, false);
    ImageView iv = (ImageView) layout.findViewById(R.id.big_product_image);     
    TextView tv = (TextView)layout.findViewById(R.id.productDescription);

    if (fullDescription.equals(""))
        tv.setVisibility(View.GONE);
    else
        tv.setText(fullDescription);

    if (iv != null && imageID != ImageManager.NOIMAGE) {
        iv.setImageResource(imageID);
        popup = new PopupWindow(layout, 
                LayoutParams.FILL_PARENT, 
                LayoutParams.FILL_PARENT, 
                true);

        BitmapDrawable bm = new BitmapDrawable();
        popup.setBackgroundDrawable(bm);
        popup.setOutsideTouchable(true);

        popup.setAnimationStyle(android.R.style.Animation_Toast);
        popup.showAtLocation(getWindow().getDecorView(), Gravity.CENTER, 0, 0);
        Button closeButton = (Button) layout.findViewById(R.id.close);
        Button orderButton = (Button) layout.findViewById(R.id.order);
        closeButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                popup.dismiss();
            }
        }); 

        if (!path.equals("")) {
            orderButton.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {

                    if (path != null)
                        startActivity(routeTo(path));

                    popup.dismiss();
                }
            });

        }

    }
  • 0
    Можете ли вы опубликовать код?
Теги:

1 ответ

0
Лучший ответ

ОК, проблема была в двух следующих строках:

    BitmapDrawable bm = new BitmapDrawable();
    popup.setBackgroundDrawable(bm);

Не уверен, почему это было причиной этого, но когда его вынимают, он работает так, как ожидалось.

  • 0
    Пожалуйста, покажите код, где эти строки используются или удалены. я сталкиваюсь с той же проблемой

Ещё вопросы

Сообщество Overcoder
Наверх
Меню