ListView and gridview常用属性

时间:2023-03-09 23:27:09
ListView and gridview常用属性

刷新:notifyDataSetChanged

1.gridview常用属性

GridView的一些特殊属性:

1.Android:numColumns=”auto_fit”   //GridView的列数设置为自动

2.android:columnWidth=”90dp "       //每列的宽度,也就是Item的宽度

3.android:stretchMode=”columnWidth"//缩放与列宽大小同步

4.android:verticalSpacing=”10dp”          //两行之间的边距

5.android:horizontalSpacing=”10dp”      //两列之间的边距

6.android:cacheColorHint="#00000000" //去除拖动时默认的黑色背景

7.android:listSelector="#00000000"        //去除选中时的黄色底色

8.android:scrollbars="none"                   //隐藏GridView的滚动条

9.android:fadeScrollbars="true"             //设置为true就可以实现滚动条的自动隐藏和显示

10.android:fastScrollEnabled="true"      //GridView出现快速滚动的按钮(至少滚动4页才会显示)

11.android:fadingEdge="none"                //GridView衰落(褪去)边缘颜色为空,缺省值是vertical。(可以理解为上下边缘的提示色)

12.android:fadingEdgeLength="10dip"   //定义的衰落(褪去)边缘的长度

13.android:stackFromBottom="true"       //设置为true时,你做好的列表就会显示你列表的最下面

14.android:transcriptMode="alwaysScroll" //当你动态添加数据时,列表将自动往下滚动最新的条目可以自动滚动到可视范围内

15.android:drawSelectorOnTop="false"  //点击某条记录不放,颜色会在记录的后面成为背景色,内容的文字可见(缺省为false)

1.简单的ListView

<LinearLayout 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=".Main"> <ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list_view"
android:background="#ff496b"
/>
</LinearLayout>

在Activity中编写如下代码

 ListView listview = (ListView)findViewById(R.id.list_view);
ArrayAdapter<String>adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data);
listview.setAdapter(adapter);

效果图

ListView and gridview常用属性

2.自定义的ListView,在audio studio中 添加图片只需要把图片复制到工程中以drawable开头的文件夹里面就可以了

第一步创建Fruit,相当于OC中的model类

public class Fruit {
private String name;
private int imageId; public Fruit(String name, int imageId) {
this.name = name;
this.imageId = imageId;
} public String getName (){
return name;
} public int getImageId (){
return imageId;
}

第二步,创建fruit_item,类似于OC中的cell

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
> <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/fruit_image"
android:layout_gravity="center_horizontal"
android:src="@drawable/ic_launcher"/> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="34px"
android:id="@+id/fruit_name"
android:text="1234556"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
/> </LinearLayout>

第三部创建FruitAdapter 集成于ArrayAdapter,相当于OC中的setModel

package listView.example.com.listviewdemo;

import android.view.ViewGroup;
import android.view.*;
import android.widget.ArrayAdapter;
import android.widget.*;
import android.content.*;
import java.util.List; /**
* Created by mac on 17/5/24.
*/
public class FruitAdapter extends ArrayAdapter<Fruit>{ private int resourceId; public FruitAdapter(Context context,int textViewResourceId,List<Fruit>objects){ super(context,textViewResourceId,objects);
resourceId = textViewResourceId; }
@Override
public View getView(int position, View convertView,
ViewGroup parent) { Fruit fruit = getItem(position); View view;
ViewHolder viewHolder;
//这里相当于oc中循环引用
if(convertView == null){
view = LayoutInflater.from(getContext()).inflate(resourceId,null);
viewHolder = new ViewHolder();
viewHolder.fruitImage = (ImageView)view.findViewById(R.id.fruit_image);
viewHolder.fruitName= (TextView)view.findViewById(R.id.fruit_name);
view.setTag(viewHolder);
}else {
view = convertView;
viewHolder = (ViewHolder)view.getTag();
} viewHolder.fruitImage.setImageResource(fruit.getImageId());
viewHolder.fruitName.setText(fruit.getName()); return view;
} //这里是临时变量
class ViewHolder{ ImageView fruitImage;
TextView fruitName; } }

在activity中代码

 initFruits();
FruitAdapter sdapter = new FruitAdapter(this, R.layout.fruit_item,fruitList);
ListView listView = (ListView)findViewById(R.id.image_list);
listView.setAdapter(sdapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Fruit fruit = fruitList.get(position);
Toast.makeText(SimpleListView.this,fruit.getName(),Toast.LENGTH_SHORT).show(); }
});

数据源方法

 private void initFruits(){
Fruit apple = new Fruit("apple", R.drawable.pingguo);
fruitList.add(apple);
Fruit apple1 = new Fruit("apple1",R.drawable.ic_launcher);
fruitList.add(apple1); Fruit apple2 = new Fruit("apple2", R.drawable.pingguo);
fruitList.add(apple2); Fruit apple3 = new Fruit("apple3apple3apple3apple3apple3apple3apple3apple3apple3apple3apple3apple3apple3apple3apple3apple3", R.drawable.pingguo);
fruitList.add(apple3);
}

最终的运行效果图

ListView and gridview常用属性

ListView常用属性

1,listview常用属性
android:divider="@drawable/song_item_line" item之间的分割线  
android:cacheColorHint="#00000000"拖动系统切换item时的缓存色  
android:scrollbars="none"不显示滚动条  
android:listSelector="#00000000"/>选中时背景色  
android:fadingEdge="none" 设置后上边和下边没有阴影了  
android:fastScrollEnabled="true" 快速滚动滑块  
android:cacheColorHint 如果你是用图片做背景的话,那也只要将android:cacheColorHint指定为透明(#00000000)就可以了.  
android:divider="@drawable/list_driver" 设置显示分割线图形,如果不想显示分割线则只要设置为 android:divider="@null" 就可以了,分割线可以自定义颜色、或图片.  
android:dividerHeight="6px"设置分割线高度像素.  
android:fadeScrollbars="true" 滚动条的自动隐藏和显示.  
android:transcriptMode="alwaysScroll" (支持ScrollBar)自动滑动到最底部.  
android:stackFromBottom="true" 设置你做好的列表显示在列表的最下面,值为true和false. android:drawSelectorOnTop="true" 点击某一条记录,颜色会显示在最上面,记录上的文字被遮住,所以点击文字不放,文字就看不到  
android:drawSelectorOnTop="false" 点击某条记录不放,颜色会在记录的后面,成为背景色,但是记录内容的文字是可见的