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);

效果图

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常用属性

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" 点击某条记录不放,颜色会在记录的后面,成为背景色,但是记录内容的文字是可见的
posted @ 2017-05-24 13:00  新年新气象  阅读(207)  评论(0编辑  收藏  举报