[置顶] android根据屏幕高度改变item占ListView高度
2016-11-18 14:05
471 查看
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) {
convertVi
4000
ew = 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));
}
}
}
相关文章推荐
- ListView中根据手机屏幕高度动态设置只显示一屏幕的item个数
- 【Android多屏适配】动态改变Listview item高度
- Android ListView根据项数的大小自动改变高度
- Android ListView根据项数的大小自动改变高度
- ListView中根据手机屏幕高度动态设置只显示一屏幕的item个数
- Android-Dialog根据listview的数据量动态改变高度,并且有一个最大的高度
- Android ListView根据项数的大小自动改变高度
- Android中ListView组件的Item拖动(Item改变顺序)
- android 改变listview的item中view的值
- android listview拖拽,拖动item 改变位置
- Android中ListView组件的Item拖动(Item改变顺序)
- 改变listview的item项的颜色、自定义expandlistview的group、item的颜色,改变、调用android.R.layout参数
- android给listview的item设定高度
- android给listview的item设定高度
- ListView高度根据item变化
- Android ListView的Item中含有EditText,获取EditText里面的值并且刷新ListView值不改变
- android 实现listview 的item 出现在屏幕有个动画效果 类似于知乎的那个app
- android给listview的item设定高度
- Android ListView的Item中含有EditText,获取EditText里面的值并且刷新ListView值不改变
- android中listView点击对应item并改变button的文字