Android列表样式&列表监听器

本文介绍如何优化Android中ListView的表现,包括调整Item间的横线颜色与高度、隐藏滚动条、解决背景显示问题等,并展示了如何设置点击与滚动监听器。

1. 设置listview 的Item之间的横线 颜色和高度 android:divider=“#8E8E8E” android:dividerHeight=“1px"

2. scrollbars属性,作用是隐藏listView的滚动条 android:scrollbars="none“ 

3. 当ListView 设置背景后 拖动发现出现背景不见了 android:cacheColorHint=”#0000” 

        1. 当有背景滑动后出现黑屏 androidScrollingcache="false"
        2. listview的item设置背景后上下滑动 出现上边和下边有黑色的阴影 android:fadingEdge="none“  
        3. 设置 ListView 点击子项的时候出现的Item颜色值 android:listSelector=“#0000”

监听器

1. setOnScrollListener 

2. setOnItemClickListener

coding

public class MainActivity extends Activity {
    private MyAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //控件已经装载完毕
        ListView listView = (ListView)findViewById(R.id.listViewId);
        adapter = new MyAdapter(this);
        
        //系统内部自动帮你回掉了多次getCount()  getView()方法
        listView.setAdapter(adapter);

        //数据是从后台服务器发送过来的(延迟)
        ArrayList<String> list = new ArrayList<String>();
        for(int i=1;i<30;i++){
            list.add("测试"+i);
        }

        //这个地方只是简单的setListData()并没有掉用getCount()/getView()
        adapter.setListData(list);
        //调用了改方法系统会在次自动调用
        adapter.notifyDataSetChanged();

        //listView接听器
        listView.setOnScrollListener(new OnScrollListener() {
            /**
            * 滚动的状态调用
            * scrollState 
            * 参数 SCROLL_STATE_FLING   轻扫
            * 参数 SCROLL_STATE_IDLE 什么都不懂的情况
            * 参数 SCROLL_STATE_TOUCH_SCROLL 拖动
            */
            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {
                // switch (scrollState) {
                // case OnScrollListener.SCROLL_STATE_FLING:
                // Log.v("wang", "轻扫");
                // break;
                // case OnScrollListener.SCROLL_STATE_IDLE:
                // Log.v("wang", "什么都不懂的情况");
                // break;
                // case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
                // Log.v("wang", "拖动");
                // break;
                // 
                // }
            }

            /**
            * 滑动时掉用
            * 只要列表滚动  就会毁掉该方法
            * firstVisibleItem  表示隐藏 了第几项
            * visibleItemCount 当前可以看到的使用listView
            * totalItemCount 全部的listView
            */
            @Override
            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
                //Log.v("wang", "totalItemCount = "+totalItemCount);
            }
        });


        //点击事件
        listView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //position  索引
                //id就是BaseAdapter的getItemId返回的值
                String str=(String)adapter.getItem(position);
                Log.v("wang", str);
        }
        });

    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

达帮主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值