-1

我有一个包含图像按钮和文本视图的自定义列表视图。现在,当我单击信息图标时,它会打开弹出窗口(实际上是我在单击图像按钮时显示的布局),其中提供了一些描述,当我再次单击该图标时,它变得不可见。但我希望它在我点击任何其他区域时不可见,而不仅仅是在那个信息图标上。

//img_Info is the Imagebutton containing i icon
img_Info = (ImageButton)view.findViewById(R.id.img_Info);

img_Info.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {
       //llimg_info is the linearlayout that becomes visible on the click event  
       if(llimg_info.isShown()) {
        llimg_info.setVisibility(llimg_info.INVISIBLE);
       }
       else {
        llimg_info.setVisibility(llimg_info.VISIBLE);
       }
   }
});

请问有什么建议吗?

4

2 回答 2

0

不确定它是否会有所帮助,但尝试为您的弹出窗口注册一个焦点更改侦听器,以便它何时会失去焦点以使其不可见。

像这样的东西:

thePopup.setOnFocusChangeListener(new OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (!hasFocus) {
            thePopup.setVisibility(View.GONE);
        }
    }
});
于 2012-12-26T14:06:55.940 回答
0

请尝试以下代码检查 ImageView 的可见性,它将解决您的问题。

ImageView llimg_info = (ImageView) findViewById(R.id.img_Info);

if (llimg_info.getVisibility() == 0) {
    System.out.println("Visible");
    llimg_info.setVisibility(llimg_info.INVISIBLE);
} else{
    System.out.println("Invisible");
    llimg_info.setVisibility(llimg_info.VISIBLE);
}
于 2012-12-26T12:49:25.930 回答