android根据屏幕高度改变item占ListView高度

    xiaoxiao2021-12-01  15

    android根据屏幕高度改变item占ListView高度

    首先要知道LayoutParams是什么。 利用LayoutParams可以更改每个item在listview中的样子。 // 调整每个Item占屏幕的百分比 AbsListView.LayoutParams lp = new AbsListView.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, mPullToRefreshListView.getHeight() / 5); convertView.setLayoutParams(lp);

    mPullToRefreshListView为我的listview控件。先获取到该listview在布局中所占的高度。然后除以我想每个页面显示item的个数,就得到了每个item的高度。在用convertView.setLayoutParams(lp);改变当前item在view中的样子。 注意:setLayoutParams必须用父控件的LayoutParams。例如该item的父控件为listview所以使用的是AbsListView。 下面贴上我的适配器的所有代码: package com.adapter;

    import android.app.Activity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView;

    import com.android_demo.R; import com.bean.MaoyanBean;

    import java.util.List;

    import adaptation.AbViewUtil; import butterknife.BindView; import butterknife.ButterKnife;

    import com.bean.MaoyanBean.DataBean.MoviesBean; import com.common.SystemApplication; import com.pullToRefresh.PullToRefreshListView;

    /** * xlistview适配器 * XlistViewAdapter * * @author tianshi * @time 2016/11/16 9:18 */

    public class XlistViewAdapter extends BaseAdapter { private Activity mActivity; private LayoutInflater mInflater; private MaoyanBean mData; private List list; private PullToRefreshListView mPullToRefreshListView;

    public XlistViewAdapter(Activity mActivity, PullToRefreshListView mPullToRefreshListView, MaoyanBean mData) { this.mActivity = mActivity; mInflater = LayoutInflater.from(mActivity); this.mData = mData; list = mData.getData().getMovies(); this.mPullToRefreshListView = mPullToRefreshListView; } public int getCount() { return list.size(); } public Object getItem(int position) { return list.get(position); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder = null; if (convertView == null) { convertView = mInflater.inflate(R.layout.item_main02, null); viewHolder = new ViewHolder(convertView); // 调整每个Item占屏幕的百分比 AbsListView.LayoutParams lp = new AbsListView.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, mPullToRefreshListView.getHeight() / 5); convertView.setLayoutParams(lp); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } //图片 SystemApplication.showImage(mActivity, list.get(position).getImg(), viewHolder.iv01); //影片名 viewHolder.tv01.setText(list.get(position).getNm()); viewHolder.tv02.setText(list.get(position).getScm()); viewHolder.tv03.setText(list.get(position).getShowInfo()); return convertView; } /** * 优化机制 */ static class ViewHolder { @BindView(R.id.iv_01) ImageView iv01; @BindView(R.id.tv_01) TextView tv01; @BindView(R.id.tv_02) TextView tv02; @BindView(R.id.tv_03) TextView tv03; ViewHolder(View view) { ButterKnife.bind(this, view); AbViewUtil.scaleContentView((LinearLayout) view.findViewById(R.id.rootLayout)); } }

    }

    转载请注明原文地址: https://ju.6miu.com/read-679281.html

    最新回复(0)