如何更改ListView项目的高度?

时间:2020-08-05 11:32:13

标签: android android-listview

单击ListView元素之一后,我想更改ListView项的高度,但是我不能这样做。

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
        view = inflter.inflate(R.layout.list_item, null);
        final ImageView icon = (ImageView) view.findViewById(R.id.GoodsIcon);
        final View finalView = view;
        icon.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                    finalView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, dpToPx(250)));
            }
        });
   return finalView;
    }

但是,如果您稍稍更改代码,脚本将起作用,但会更改所有ListView项的高度。

 @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
            view = inflter.inflate(R.layout.list_item, null);
            view.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, dpToPx(250)));
       return view;
        }

如何在单击图标(ImageView)后如何更改ListView项的高度??

1 个答案:

答案 0 :(得分:0)

您可以使用View.getChildAt(int idx)来获取特定的视图。您只能获取可见项(它从第一个可见项开始,如果需要获取第一个可见项,则可以使用ListView.getFirstVisiblePosition())。

例如:

View view = mListView.getChildAt(index - mListView.getFirstVisiblePosition());

if(v == null)
   return;

view.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, dpToPx(250)));
相关问题