ListView分类列表条目滑到中间
来源:互联网 发布:淘宝内衣评价不能晒图 编辑:程序博客网 时间:2024/06/01 09:12
MainActivity
public class MainActivity extends AppCompatActivity {
private ListView mListView;
private List<String> list;
private ListViewAdapter adapter;
//当前所显示的条目
private int visibleCount = 0;
//当前所显示条目数一半,也就是所显示的中间位置占几个条目
private int middleCount = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mListView = (ListView) findViewById(R.id.listView);
//添加数据
initData();
adapter = new ListViewAdapter(list, this);
mListView.setAdapter(adapter);
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//改变背景
adapter.changeSelectBackground(position);
if (visibleCount == 0) {
// 得到当前显示条目
visibleCount = parent.getChildCount();
if (visibleCount != list.size()) {
middleCount = visibleCount / 2;
}
}
//如果点击条目高于 此列表的正中 则 列表整体上移
if (position <= (parent.getFirstVisiblePosition() + middleCount)) {
mListView.smoothScrollToPosition(position + 1 - middleCount);
}
//如果点击条目低于 此列表的正中 则 列表整体下移
else {
mListView.smoothScrollToPosition(position - 1 + middleCount);
}
}
});
}
private void initData() {
list = new ArrayList<>();
for (int i = 0; i < 20; i++) {
list.add("商品" + i);
}
}
}
Adapter
public class ListViewAdapter extends BaseAdapter {
private List<String> list;
private Context context;
private int selectId;
public ListViewAdapter(List<String> list, Context context) {
this.list = list;
this.context = context;
}
//改变背景方法
public void changeSelectBackground(int pos){
this.selectId = pos;
notifyDataSetChanged();
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = View.inflate(context, R.layout.item, null);
TextView t = (TextView) convertView.findViewById(R.id.ttt);
t.setText(list.get(position));
/**
* 如果点击的是此条目 则改变背景
*/
if(position == selectId){
t.setTextColor(Color.parseColor("#FFE13F5A"));
convertView.setBackgroundColor(Color.parseColor("#d9d8dd"));
}else {
t.setTextColor(Color.parseColor("#000000"));
convertView.setBackgroundColor(Color.parseColor("#ffffff"));
}
return convertView;
}
}
- ListView分类列表条目滑到中间
- 关于ListView滚动到中间条目的方法
- Android ListView 列表分隔,条目中添加分类信息(文字,图片等)
- Listview跳到指定条目位置(条目)
- 定位ListView到指定的某一个条目
- 点击listview条目跳转到另一个Activity
- Android_ Listview点击条目跳转到相关内容
- ListView点击子条目跳转到详情
- Android二级分类列表ListView
- listview点击列表详情中已查看后在listView列表单中移除该条目
- ListView中的每个条目如何跳转到另外的Activity?
- 并排ListView——仿京东分类列表
- 并排ListView——仿京东分类列表
- 并排ListView——仿京东分类列表
- 如何在含有checkbox的listview条目中获取到选中的条目信息
- 自定义SwipeLayout控件实现ListView条目侧滑出现删除按钮,点击实现删除ListView条目
- 关于listview点击Item滑动到视图中间的做法。
- listview+checkbox 在一个页面点击checkbox,滑动到另一个页面也有 listview条目复制
- 设计模式
- python一维插值以及subplot画图范例
- 人月神话读后感<二>
- 廖雪峰python学习笔记(2——函数)
- 计算机四级知识点(转)
- ListView分类列表条目滑到中间
- 第十六节IO流
- 链接栈(Link Stack)———— 栈的链接实现
- 第四课---过滤数据
- Java静态代理
- 英语快照总结-17.09.24
- MySQL安装
- 使用eclipse构建web项目的步骤
- 写程序学ML:决策树算法原理及实现(二)