zoukankan      html  css  js  c++  java
  • 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" 点击某条记录不放,颜色会在记录的后面,成为背景色,但是记录内容的文字是可见的
  • 相关阅读:
    [TJOI2013]单词 AC 自动机
    NOIP 2017 逛公园 记忆化搜索 最短路 好题
    [BJWC2012]冻结 分层图最短路
    dijkstra STL 堆优化
    [POI2002][HAOI2007]反素数 数论 搜索 好题
    bzoj 2456: mode 思维题 好题
    [SDOI2012]Longge的问题 欧拉反演_欧拉函数
    [JLOI2011]飞行路线 分层图最短路
    页面加速优化
    制作html5微信页面的经验总结。
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/6898407.html
Copyright © 2011-2022 走看看