使用listview多布局会出现一点问题:
由于多个item布局给单一的item布局是不一样的,使用起来,contentview的复用会出现问题。
避免出现问题的有这几个方法:
1.重写 getViewTypeCount() – 该方法返回多少个不同的布局
2.重写 getItemViewType(int) – 根据position返回相应的Item
3.根据view item的类型,在getView中创建正确的convertView
MainActivity
import android.content.Context; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.CheckBox; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { ListView listView; MyAdapter listAdapter; ArrayList<String> listString; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) this.findViewById(R.id.listview); listString = new ArrayList<String>(); for (int i = 0; i < 100; i++) { listString.add(Integer.toString(i)); } listAdapter = new MyAdapter(this); listView.setAdapter(listAdapter); } public class MyAdapter extends BaseAdapter { Context mContext; LinearLayout linearLayout = null; LayoutInflater inflater; TextView tex; final int VIEW_TYPE = 3; final int TYPE_1 = 0; final int TYPE_2 = 1;