【问题标题】:How to change height of a ListView item?如何更改 ListView 项目的高度?
【发布时间】:2020-11-25 13:49:50
【问题描述】:

点击其中一个ListView元素后,想改变ListView Item的高度,但是做不到。

@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;
        }

点击icon(ImageView)后如何让ListView项的高度发生变化?

【问题讨论】:

    标签: android android-listview


    【解决方案1】:

    您可以使用 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)));
    

    【讨论】:

    • 可能是这样,注意变量名重叠。
    • 它也没有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    • 2014-08-07
    • 2016-11-01
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多