自定义listview中滚动条样子:
在ListView中添加属性:
android:scrollbarTrackVertical="@drawable/scrollbar_vertical_track"
android:scrollbarThumbVertical="@drawable/scrollbar_vertical_thumb"
scrollbar_vertical_track,crollbar_vertical_thumb
自定义的xml文件,放在Drawable中,track是指长条,thumb是指短条,然后再xml中定义短条和长条的样式
不让滚动条消失,一直出现:
android:fadeScrollbars="false"
不让滚动条出现:
android:scrollbars="none"
这里需要我们自己定义一个adapter,在getview方法里添加我们的判读逻辑(让listview指定的item获取焦点),让返回的view去掉用view.requestFous,并对listview.setSelection(pos),pos为指定的item,同时要注意鼠标点击操作出现listview会使焦点丢失(不会出现在item上)
PopWindow中listview的item获取不到点击事件的解决方案
1. 想让listview的item获取点击事件,
千万不要用listview.setOnItemClickListener()
因为listview是获取不到焦点的,怎么设置都没有用处,我已经用过n多次了
要在adapter中的getView方法中对当前view设置点击事件,并使用一个回调接口暴露给创建该listview的
activity,这样就可以进行一些操作了,注意暴漏的接口要是public的,AdapterItemOnClickCallback
2, 发评论的朋友说的:
popupWindow.setFocusable(true);
popupWindow.update();
去掉滑动到头时两边的阴影
android:overScrollMode="never"
去掉两头泛色的过度地带:
android:fadingEdge="none"
有个EditText, 当软键盘打开的时候, listview下面的东西被盖住了,
设置以下属性: android:transcriptMode="alwaysScroll"
它会使listview的最新条目滚动到可视范围, 设置normal有时候会不管用,
但是它的很大的弊端是: 下拉获取更多的消息完毕时,或者只要你调用adapter的notify方法, 它总是默认选中listview最后一项, listview的setSelection是没有用的;
解决方法是: 发送一个在下拉开始的时候, 禁用掉, 等下拉完毕后,发送一个message, 在handler的handleMesage中启用它,,
为什么不直接在下拉完毕adapter.notify完毕后启用它, 试试就知道了. 反正我的是行不通的,所以才用handler