单击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项的高度??
答案 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)));