您的位置:首页 > 其它

tab选择效果SelectedTab

2016-02-19 14:50 225 查看

概述

这个项目是基于GridView编写,其实用RecycleView更好一些

纯粹实现了功能,没有什么技术含量

文件作用
snapshot程序运行的.gif图
TabDomain.java封装每个tab的属性
CommonAdatper.java
ViewHolder.java
是adapter的工具
MainActivity.java代码实现类

文件

MainActivity.java

public 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  gridview