1.刷新数据显示最后一行。
在listview的xml中添加属性:
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
在添加适配器的时候:
//刷新数据
mAdapter.notifyDataSetChanged();
//显示到最后一行的数据
mListView.setSelection(mAdapter.getCount());
2.显示多个布局。
在BaseAdapter的方法中,重写以下方法:
getViewTypeCount()返回子部局数量:
@Override
public int getViewTypeCount() {
// TODO Auto-generated method stub
return 2;
}
getItemViewType()返回辨别view类型的整数:
<pre name="code" class="html">@Override
public int getItemViewType(int position) {
// TODO Auto-generated method stub
return list.get(position).getTag();
}
getView()中根据view类型,选择合适的布局。
@Override
public View getView(int position, View convView, ViewGroup arg2) {
// TODO Auto-generated method stub
// 获取布局编号
int type = getItemViewType(position);
VHolder holder = null;
if (null == convView) {
switch (type) {
case 0:
convView = LayoutInflater.from(context).inflate(
R.layout.line_main_type_1, null);
holder = new VHolder();
holder.titleName = (TextView) convView
.findViewById(R.id.tv_lname);
convView.setTag(holder);
break;
case 1:
convView = LayoutInflater.from(context).inflate(
R.layout.line_main_type_2, null);
holder = new VHolder();
holder.titleName = (TextView) convView
.findViewById(R.id.tv_sname);
convView.setTag(holder);
break;
default:
break;
}
} else {
switch (type) {
case 0:
// holder = (VHolder) convView.getTag();
break;
case 1:
// holder = (VHolder) convView.getTag();
break;
default:
break;
}
//
// holder = (VHolder) convView.getTag();
}
switch (type) {
case 0:
// do something
break;
case 1:
// do something
break;
default:
break;
}
SPBean bean = list.get(position);
holder.titleName.setText(bean.getTitleName());
return convView;
}
3.list item设置是否可点击:
@Override
public boolean isEnabled(int position) {
// TODO Auto-generated method stub
int t = list.get(position).getTag();
if (0 == t) {
return false;
} else if (1 == t) {
return true;
}
return true;
}
true 可以点击,false不可点击。注意,内部的button之类不受影响。
4.listview的最后一行添加下划线。
<View
android:layout_width="match_parent"
android:layout_height="0.5px"
android:background="#B8B8B8"
android:visibility="visible" />
个人觉得方便一点的方法,就是在每个子布局下面自己画一条线就可以了。
5.绘制表格。
定义子部局的时候,每隔数据就画一条竖线。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<View
android:layout_width="0.5px"
android:layout_height="fill_parent"
android:background="#B8B8B8"
android:visibility="visible" />
<TextView
android:id="@+id/tv_tuname"
android:layout_width="50dp"
android:layout_height="wrap_content" />
<View
android:layout_width="0.5px"
android:layout_height="fill_parent"
android:background="#B8B8B8"
android:visibility="visible" />
<TextView
android:id="@+id/tv_fstart"
android:layout_width="40dp"
android:layout_height="wrap_content"
android:textColor="#000000" />
<View
android:layout_width="0.5px"
android:layout_height="fill_parent"
android:background="#B8B8B8"
android:visibility="visible" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="0.5px"
android:background="#B8B8B8"
android:visibility="visible" />
</LinearLayout>