2012-12-26 69 views
-1

我有一個包含imagebuttons和textviews的自定義listview。現在,當我點擊信息圖標時,它會打開彈出窗口(實際上是我在圖像按鈕的點擊中可見的佈局),它提供了一些描述,當我再次單擊該圖標時,它變得不可見。但是我希望它在任何其他區域點擊時不會隱藏,而不僅僅是在該信息圖標上。當我們點擊主佈局上的其他區域時,使主佈局內的一個佈局不可見

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

有什麼建議嗎?

+0

請參閱我的答案,它會解決你的問題。 –

回答

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

它和llimg_info.isshown()做的事情是一樣的。.................意味着當我點擊信息時它變得可見,當我再次點擊它時變得不可見;但我希望即使我點擊任何其他區域,而不僅僅是該信息圖標,它應該變得不可見。 – nidhi

+0

@nidhi然後在主佈局的點擊事件上設置可見性。 –

0

不知道是否會有所幫助,但嘗試註冊爲您彈出一個焦點變化監聽器,這樣當將失去焦點,使其不可見。

事情是這樣的:

thePopup.setOnFocusChangeListener(new OnFocusChangeListener() { 
    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     if (!hasFocus) { 
      thePopup.setVisibility(View.GONE); 
     } 
    } 
});