【Android】listView动态处理item
16lz
2021-01-26
背景:
主界面有listView ,id是List_main,adapter是直接new出来的
-----------------------我是分割线---------------------------------
由于listview在中间,我想让三个item占满他,而listview的大小也是根据屏幕分辨率调的,我的办法是用inflate拿到adapter布局里面的高,然后用getLayoutParams().height=XX来改,后来我发现,值拿到了,也改了,log出来的值也是改过的值,但是界面上的高就是没变。
后来在某大神的博客找到方法
adapter这个类每在新建item的时候都会调用一次getView方法,我写了一个adapter继承自SimpleAdapter,然后再new我的这个adapter,在参数里面加一个值,给getview用
代码如下
activity
主界面有listView ,id是List_main,adapter是直接new出来的
-----------------------我是分割线---------------------------------
由于listview在中间,我想让三个item占满他,而listview的大小也是根据屏幕分辨率调的,我的办法是用inflate拿到adapter布局里面的高,然后用getLayoutParams().height=XX来改,后来我发现,值拿到了,也改了,log出来的值也是改过的值,但是界面上的高就是没变。
后来在某大神的博客找到方法
adapter这个类每在新建item的时候都会调用一次getView方法,我写了一个adapter继承自SimpleAdapter,然后再new我的这个adapter,在参数里面加一个值,给getview用
代码如下
adapter
package com.example.android_class;import java.util.List;import java.util.Map;import com.example.android_class.MainActivity;import android.content.Context;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.SimpleAdapter;public class MyAdapter extends SimpleAdapter { int myh;public MyAdapter(Context context, List<? extends Map> data,int resource, String[] from, int[] to,int myh) {super(context, data, resource, from, to);this.myh=myh;}public View getView(int position, View convertView, ViewGroup parent) { View v = super.getView(position, convertView, parent);v.getLayoutParams().height=myh; return v;}}
activity
private void init_setAdapter() {List
还有一个问题就是像素和dp的转换问题,以后再说。
禁止转载
更多相关文章
- 一句话锁定MySQL数据占用元凶
- android onSaveInstanceState方法
- 【Android】数据存储之Sharepreference
- Android(安卓)简单存储 SharedPreferencesUtils
- 浅析Android加载字体包及封装的方法
- Android与JS交互之基本
- 使用MediaPlayer播放声音的异常
- Android三种定时器的简单使用
- Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)