Android adapter 中动态设置控件的方法

来源:互联网 发布:绝地求生鼠标宏数据 编辑:程序博客网 时间:2024/05/18 20:11

这里简单介绍动态设置listview中每一项的高度的方法。
如果直接在adapter中获取控件的LayoutParams会报空指针异常。
比较靠谱的方法是在item布局文件中多嵌套一层LinearLayout:
如下:

listview中加载的item布局:

<LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/slid_item"    android:orientation="vertical"    android:background="#bcaaa4"    android:layout_width="match_parent"    android:layout_height="match_parent">    <LinearLayout        android:id="@+id/item_content"        android:orientation="horizontal"        android:layout_width="match_parent"        android:layout_height="match_parent">        <TextView            android:textSize="24sp"            android:text="note"            android:textColor="#fff"            android:gravity="center"            android:layout_width="match_parent"            android:layout_height="match_parent" />    </LinearLayout></LinearLayout>

多嵌套一层布局后就可以在适配器中针对第二层的布局动态设置了。
即(以下是我测试时的代码):

 @Override    public View getView(int position, View convertView, ViewGroup parent) {        convertView = LayoutInflater.from(context).inflate(R.layout.slid_menu_item,null);        LinearLayout l = (LinearLayout) convertView.findViewById(R.id.item_content);        LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) l.getLayoutParams();        layoutParams.height = (int) list.get(position)/5;        l.setLayoutParams(layoutParams);        return convertView;    }
0 0
原创粉丝点击