gpt4 book ai didi

android - setadapter后获取ListView高度

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:41:31 24 4
gpt4 key购买 nike

好吧,我试图在更改数据后获取我的 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);

最佳答案

好的,我找到了解决方案。

当我在我的 ListView 中更改 SetAdapter 时,我得到了表示一行的测量高度,然后乘以行号加上分隔线高度也乘以行号。

这是我做的一个例子,我不知道这是不是更好的方法,但它工作得很好^^:

    ListView lv_marca; 

lv_marca.setAdapter(adapter_marca);

int list_height = getListViewHeight(lv_marca);



private int getListViewHeight(ListView list) {
ListAdapter adapter = list.getAdapter();

int listviewHeight = 0;

list.measure(MeasureSpec.makeMeasureSpec(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));

listviewHeight = list.getMeasuredHeight() * adapter.getCount() + (adapter.getCount() * list.getDividerHeight());

return listviewHeight;
}

关于android - setadapter后获取ListView高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12411060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com