如何更改 ListView 项目的高度?
Posted
技术标签:
【中文标题】如何更改 ListView 项目的高度?【英文标题】:How to change height of a ListView item? 【发布时间】: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项的高度发生变化?
【问题讨论】:
【参考方案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)));
【讨论】:
可能是这样,注意变量名重叠。 它也没有帮助。以上是关于如何更改 ListView 项目的高度?的主要内容,如果未能解决你的问题,请参考以下文章
当 ListView.builder 顶部附近的项目高度被缓存但已更改时,如何从 animateTo 获得正常行为?
C# Wpf 如何使用其中的按钮更改 Listviewitem 的高度?
Android,ListView IllegalStateException:“适配器的内容已更改但ListView没有收到通知”