我有一个相对布局弹出窗口,在按钮点击时显示。我在同一个屏幕上有一些其他视图,弹出窗口覆盖它们。但是当我点击弹出窗口时,后面的控件/视图会被点击。如何禁用此功能?
(我的一个解决方案是获取所有观看次数setClickable = false
。)
但我正在寻找其他解决方案,比如关注当前视图,以便其他视图被设置为禁用。
答案 0 :(得分:6)
我遇到了同样的问题,最后反而将设置为后面的为clickable = false,我只是将clickable = true 添加到< strong>弹出式布局并修复了它。弹出窗口后面的可单击视图不再通过弹出窗口响应单击事件。 :)我甚至不必将弹出窗口改为对话框。 :)
答案 1 :(得分:2)
激活setOnClickListener()到RelativeLayout对象。这会捕获所有点击并阻止点击后面的控件/视图。
例如: -
RelativeLayout rObj = (RelativeLayout) findViewById(R.id.yourRelativeLayout);
rObj.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// filter touches when underlying view is Obscured by this view.
}
});
答案 2 :(得分:2)
使用对话框。我认为这是弹出窗口要求的最佳解决方案。
final Dialog dialog = new Dialog(NewEntryActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.interview_tab6_popup_drink_containg_alcohol);
dialog.setCancelable(true);
dialog.setCanceledOnTouchOutside(true);
答案 3 :(得分:1)
为此,请将RelativeLayout
改为BringToFront()
并制作其他观点SetEnabled(false)