2017-07-14 27 views
0

我有一個名爲「resultView」的Linearlayout。然後,我點擊一個按鈕後動態添加許多textView。 我想刪除我剛剛創建的所有文字瀏覽,當我再次單擊按鈕。調用removeAllViews()後Android佈局不會刷新

btn_search.setOnClickListener(new Button.OnClickListener(){ 
     @Override 
     public void onClick(View view) { 
      resultView.removeAllViews(); 

      String strFileName = et_fileName.getText().toString(); 
      searchFiles(strFileName); 
    } 
}); 

public void searchFiles(String strFileName){ 
    .... 

    for (int i = 0; i < fileList.size(); i++) { 
     TextView textView = new TextView(this); 
     textView.setText(fileList.get(i).getName()); 
     textView.setPadding(5, 5, 5, 5); 

     if (fileList.get(i).isFile()) 
      resultView.addView(textView); 
    } 
} 

App Screenshot,所有列出的結果都是動態創建的textViews。

My XML,id「view」是我的resultView。

resultView.removeAllViews();不起作用。結果仍然存在。 之後調用resultView.invalidate();也不起作用。

我應該怎樣做佈局刷新?

+0

add also resultView.requestLayout(); –

+0

resultView.requestLayout()不工作 – Eiko

+0

如果你沒有進入mainThread,使用postInvalidate()而不是invalidate()。你是否在代碼中調用invalidate()?在「onClickListener」中,只刪除視圖。 –

回答

0

使用.invalidate()更新UI。