listview和gridView设置条目的高度

2018-08-14  本文已影响0人  念念不忘_2016

在开发过程中,很多地方需要固定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);
}
上一篇下一篇

猜你喜欢

热点阅读