У меня есть 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();
}
});
}
}
ОК, проблема была в двух следующих строках:
BitmapDrawable bm = new BitmapDrawable();
popup.setBackgroundDrawable(bm);
Не уверен, почему это было причиной этого, но когда его вынимают, он работает так, как ожидалось.