好吧,我試圖在更改它的數據後獲得我的listview高度,但它總是返回之前的高度,而不是實際的高度。在setadapter之後獲取ListView的高度
所以,當我設置setadapter,並獲得舊值。 如:
ActualHeight = 100
Change data (filter) -> NewHeight = 60
ListView.GetHeight still returns 100.
Again
ActualHeight = 60
Change data (filter) -> NewHeight = 20
ListView.GetHeight still returns 60.
我正在使用的代碼是:
int width, height = 0;
EditText edt_search;
ListView lv_marca;
List<Marca> list_marca = new ArrayList<Marca>();
List<Marca> list_marca_search = new ArrayList<Marca>();
String text = edt_search.getText().toString();
list_marca_search.clear();
if(text.startsWith(".")){
text = text.replace(".", "");
for (Marca m : list_marca) {
if (String.valueOf(m.getCd_marca()).equals(text)){
list_marca_search.add(m);
}
}
} else {
for (Marca m : lista_marca) {
if (m.getDs_marca().contains(text)){
list_marca_search.add(m);
}
}
}
ArrayAdapter<Marca> adapter_marca = new CustomAdapter_Marca(MyDialog.this, R.layout.layout_consulta_estoque_marca_lista, list_marca_search);
lv_marca.setAdapter(adapter_marca);
int height_window = getWindowManager().getDefaultDisplay().getHeight();
height = lv_marca.getHeight() + getSupportActionBar().getHeight();
if (height >= height_window) {
height = (int) (height_window * 0.95);
}
getWindow().setLayout(width, height);
你的代碼沒有運行。請不要將無效的答案標記爲解決方案。刪除建議 – user1324936
@ user1324936在推薦刪除之前,您應該更努力:它工作得很好。 – AlexS
@Cechinel U代碼在2.3中,但在4.2和4.1我得到不同的高度請給我解決方案。 –