在开发过程中,很多地方需要固定item的高度,这样才能更好些的显示。但是发现在xml文件中设置不管用,无法直接在adapter的getView里通过convertView的 getLayoutParams()获得LayoutParams,因为这个时候convertView还没有加到任何viewgroup里,所以需要手动new一个新的LayoutParams,一下亲测可用
public View getView(int position, View convertView, ViewGroup parent) {
convertView = LayoutInflater.from(context).inflate(R.layout.item, null);
AbsListView.LayoutParams param = new AbsListView.LayoutParams( android.view.ViewGroup.LayoutParams.FILL_PARENT, UIUtils.dp2px(90));//传入自己需要的宽高
convertView.setLayoutParams(param);
return convertView;
}
项目中的像素转换工具类(UIUtils)
/**
* 将dp值转换为px值
* @param dp 需要转换的dp值
* @return px值
*/
public static int dp2px(float dp) {
return (int) (getResources().getDisplayMetrics().density * dp + 0.5f);
}
/**
* 将px值转换为dp值
* @param px 需要转换的px值
* @return dp值
*/
public static int px2dp(float px) {
return (int) (px / getResources().getDisplayMetrics().density + 0.5f);
}
网友评论