Android 为ListView添加头部试图

来源:互联网 发布:雅马哈电子琴知乎 编辑:程序博客网 时间:2024/06/05 19:35

一般我们使用listview的时候会遇到这样的情况,在头部有一个TextView之类的组件,但是对listview中的内容滑动的时候头部并没有一起滑动,所以为了解决这个问题,为listview添加一个头部试图就可以一起滑动,具体实现代码如下:

public class MainActivity extends Activity {private ListView lv;private ArrayList<String> list;private ArrayAdapter<String> adapter;private ImageView iv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lv = (ListView) findViewById(R.id.activity_main_listview);list = new ArrayList<String>();for (int i = 0; i < 50; i++) {list.add("bigbang"+i);}adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1,list);//注意:放在设置适配器之前//加载头部试图的步骤://1.获得一个布局加载器LayoutInflater inflater = LayoutInflater.from(MainActivity.this);    //2.加载一个布局    //2.1先有一个布局    //2.2加载了一个布局    //inflater:方法参数    //1.要加载的布局文件    //2.父容器    //3.是否使用父容器的宽高属性    View view = inflater.inflate(R.layout.listview_top, null);            //将加载的试图添加到ListView的头部    iv = (ImageView) view.findViewById(R.id.listview_top_iv);    lv.addHeaderView(view);lv.setAdapter(adapter);lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {//parent:Listview//view:条目//position:第几条@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {Toast.makeText(MainActivity.this,"bigbang"+position,Toast.LENGTH_SHORT).show();    if(position!=0){    int color=(position-1)%5;    switch (color) {case 0:iv.setImageResource(R.drawable.gd);break;case 1:iv.setImageResource(R.drawable.top);break;case 2:iv.setImageResource(R.drawable.sql);break;case 3:iv.setImageResource(R.drawable.dasheng);break;case 4:iv.setImageResource(R.drawable.shengli);break;}    }}});}}
activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity" >    <ListView        android:id="@+id/activity_main_listview"        android:layout_width="match_parent"        android:layout_height="match_parent"/></RelativeLayout>

listview_top.xml

<?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="match_parent"    android:orientation="vertical" >        <ImageView        android:id="@+id/listview_top_iv"         android:layout_width="match_parent"        android:layout_height="300dp"        android:src="@drawable/a"        android:scaleType="centerCrop"        /></LinearLayout>



0 0
原创粉丝点击