当前位置:首页 > Android

GridView中item高度自适应

jsc10年前 (2016-04-01)Android4417

item高度自适应

public class MyAdapter extends BaseAdapter {

        GridView mGv;   
    public static int ROW_NUMBER = 5;

    public MyAdapter (GridView gv, Context mContext, ArrayList<String> list) {
        this.context = mContext;
        this.mGv = gv;
        lstDate = list;
    }

       @Override
    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,
                mGv.getHeight()/ROW_NUMBER);
        convertView.setLayoutParams(param);

        return convertView;
    }

关键点  通过获取GridView 的高度来计算每个item的高度。缺点:个人认为,实际上GridView 重绘了一遍(数据量大时影响性能),第一遍的时候GridView高度为0,item也为0,求证!!  如果设置了ViewHolder 会使第一个item缺失。

 mGv.getHeight()/ROW_NUMBER


扫描二维码推送至手机访问。

版权声明:本文由微小站发布,如需转载请注明出处。

本文链接:https://jsc0.com/post/57.html

分享给朋友:

“GridView中item高度自适应” 的相关文章

Android开发中Bundle用法 包裹数据

SDK里是这样描述:A mapping from String values to various Parcelable types。 它帮助我将数据打包传入intent里面,为使用这些数据提供了便利......…

Android ImageView的scaleType属性与adjustViewBounds属性

Android ImageView的scaleType属性与adjustViewBounds属性

ImageView的scaleType的属性有好几种,分别是matrix(默认)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXY android:scaleType…

Fragment保持状态切换

Fragment保持状态切换

在使用Activity管理多个Fragment时,每次切换Fragment使用的是replace,结果导致出现xxx is not currently in the FragmentManager异常挂掉网上说使用replace切换会使被切换的Fragment给替换掉,从而被被切换的Fra…

Android中的消息通知(NotificationManager和Notification)

下面来谈谈notification,这个notification一般用在电话,短信,邮件,闹钟铃声,在手机的状态栏上就会出现一个小图标,提 示用户处理这个通知,这时手从上方滑动状态栏就可以展开并处理这个快讯。已添加的Notification.Builder,使其更容易构建通知。 notifica…

onTextChanged参数解释及实现EditText字数监听

由于最近做项目要检测EditText中输入的字数长度,从而接触到了Android中EditText的监听接口,TextWatcher。它有三个成员方法,第一个after很简单,这个方法就是在EditText内容已经改变之后调用,重点看下面两个方法:beforeTextChanged(CharSequ…

android 定时循环执行任务

一、执行循环的函数如下:private Handler handler = new Handler();         priv…