tab选择效果SelectedTab
2016-02-19 14:50
225 查看
概述
这个项目是基于GridView编写,其实用RecycleView更好一些纯粹实现了功能,没有什么技术含量
文件 | 作用 |
---|---|
snapshot | 程序运行的.gif图 |
TabDomain.java | 封装每个tab的属性 |
CommonAdatper.java ViewHolder.java | 是adapter的工具 |
MainActivity.java | 代码实现类 |
文件
MainActivity.javapublic class MainActivity extends Activity { private Context mContext; private GridView mGvContent; private GVAdapter mAdapter; private int currentPosition = -1;//当前选中的条目 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mContext = this; setContentView(R.layout.activity_tab_selected); initViews(); } private void initViews() { mGvContent = (GridView) findViewById(R.id.gv_content); initData(); } private void initData() { final List<TabDomain> mTabList = new ArrayList<>(); /*--------------模拟初始化数据----------------*/ TabDomain tab1 = new TabDomain(); tab1.text = "签到(8:30)"; tab1.isSelected = true; TabDomain tab2 = new TabDomain(); tab2.text = "中午签退(12:00)"; TabDomain tab3 = new TabDomain(); tab3.text = "签到(1:30)"; TabDomain tab4 = new TabDomain(); tab4.text = "下午签退(1:30)"; mTabList.add(tab1); mTabList.add(tab2); mTabList.add(tab3); mTabList.add(tab4); if (currentPosition == -1) {//默认第一个选中 mTabList.get(0).isSelected = true; currentPosition = 0; } //设置gridveiw内容 mAdapter = new GVAdapter(mContext, mTabList, R.layout.activity_tab_selected_item); mGvContent.setAdapter(mAdapter); //gridview点击事件 mGvContent.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if (currentPosition != position) { mTabList.get(currentPosition).isSelected = false; mTabList.get(position).isSelected = true; currentPosition = position; mAdapter.notifyDataSetChanged(); } } }); } /** * adapter */ private class GVAdapter extends CommonAdapter<TabDomain> { public GVAdapter(Context context, List list, int itemLayoutId) { super(context, list, itemLayoutId); } @Override public void convert(ViewHolder helper, TabDomain item) { helper.setText(R.id.tv_time, item.text); if (item.isSelected) { ((TextView) helper.getView(R.id.tv_time)).setTextColor(getResources().getColor(item.selectedColor)); helper.getView(R.id.v_time).setBackgroundColor(getResources().getColor(item.selectedColor)); }else{ ((TextView) helper.getView(R.id.tv_time)).setTextColor(getResources().getColor(item.unselectedColor)); helper.getView(R.id.v_time).setBackgroundColor(getResources().getColor(item.unselectedColor)); } } } }
下载地址
https://github.com/407365100/SelectedTab.git相关文章推荐
- Android编程UI设计之GridView和ImageView的用法
- C#中GridView动态添加列的实现方法
- Gridview用法大总结(全程图解珍藏版)
- C#使用RenderControl将GridView控件导出到EXCEL的方法
- asp.net gridview中用checkbox全选的几种实现的区别
- GridView使用学习总结
- asp.net 设置GridView的选中行
- 让GridView只显示特定用户的数据的方法
- GridView单元格合并
- C#导出GridView数据到Excel文件类实例
- C#与SQL连接:GridView控件对数据库的操作
- ASP.NET中为GridView添加删除提示框的方法
- 在ASP.NET 2.0中操作数据之十二:在GridView控件中使用TemplateField
- 如何用jQuery实现ASP.NET GridView折叠伸展效果
- JQuery的ajax基础上的超强GridView展示
- 实例详解jQuery结合GridView控件的使用方法
- asp.net gridview指定某一列滚动
- datalist,Repeater和Gridview的区别分析
- js获取GridView中行数据的两种方法 分享
- asp.net gridview强制换行