2014-11-24 117 views
0

我在我的RelativeLayout中有一個ListView,應該在執行搜索時隱藏。因此我實現了以下代碼:Android ListView setVisibility不起作用

mProgressView.setVisibility(View.VISIBLE); 
mSearchListView.setVisibility(View.INVISIBLE); 
mSearchAdapter.search(query).onSuccess(new Continuation<Set<Integer>, Object>() { 
    @Override 
    public Object then(final Task<Set<Integer>> task) throws Exception { 
     runOnUiThread(new Runnable() { 
      @Override 
      public void run() 
       mSearchAdapter.notifyDataSetChanged(); 

       mProgressView.setVisibility(View.INVISIBLE); 
       mSearchListView.setVisibility(View.VISIBLE); 
      } 
     }); 
     return null; 
    } 
}); 

不幸的是,ListView保持可見狀態。 ProgressView開始成功旋轉,但列表視圖仍然可見。有什麼提示要做什麼?

+0

有時可能會發生的行爲,當用戶界面不被從UI內更新線。這並不總是產生錯誤,但有時候不會做主叫方要求的。所以,我會檢查你是否正在UI線程上進行這些更改(對於這些更新應該是這種情況)。 – 2014-11-24 20:34:24

+0

我其實也是。而且我認爲進度視圖不能正常工作,當沒有從UI線程更新 – 2014-11-24 20:47:04

回答

0

當你說它保持「可見」,你的意思是你看到的數據在列表視圖或只是有些空間似乎被一個不可見的列表視圖佔用?

如果是後者的話,那麼你應該嘗試使列表視圖GONE爲 -

mSearchListView.setVisibility(View.GONE); 

,而不是把它無形

+0

我仍然看到內容。我也已經嘗試過使用GONE,沒有任何變化:( – 2014-11-25 07:37:58

+0

mSearchListView.setVisibility(View.INVISIBLE); – 2014-11-25 08:38:44

+0

你確定你正在尋找正確的listview?意思是你查找它的id是正確的嗎?一個更詳細的代碼,這將更容易弄清楚這是怎麼回事。 – mistwalker 2014-11-25 08:43:29