80,351
社区成员
发帖
与我相关
我的任务
分享
public class MainActivity extends Activity implements OnClickListener,SwipeRefreshLayout.OnRefreshListener {
private SwipeRefreshLayout refreshLayout;
private View title_gone;
private View title_index;
private TextView txt_title;
private FragmentManager fragmentManager;
private Fragment[] fragments;
private ImageView[] imageButtons;
private TextView[] textViews;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化布局元素
initViews();
//把fragment添加到事务中
addFragmentToTransaction();
//第一次启动时选中第0个tab
setTabSelection(0);
//下拉刷新
setRefresh();
}
//下拉刷新
private void setRefresh(){
refreshLayout=(SwipeRefreshLayout) findViewById(R.id.refresh_header);
}
@Override
public void onRefresh(){
}
//在这里获取到每个需要用到的控件的实例,并给它们设置好必要的点击事件。
private void initViews() {
title_gone=findViewById(R.id.title_gone);
title_index=findViewById(R.id.title_index);
txt_title=(TextView) findViewById(R.id.txt_title);
IndexFragment indexFragment=new IndexFragment();
MallFragment mallFragment=new MallFragment();
HealthFragment healthFragment=new HealthFragment();
MineFragment mineFragment=new MineFragment();
fragments=new Fragment[]{indexFragment,mallFragment,healthFragment,mineFragment};
ImageView indexImage = (ImageView) findViewById(R.id.tab_index_img);
ImageView mallImage = (ImageView) findViewById(R.id.tab_mall_img);
ImageView healthImage = (ImageView) findViewById(R.id.tab_health_img);
ImageView mineImage = (ImageView) findViewById(R.id.tab_mine_img);
imageButtons=new ImageView[]{indexImage,mallImage,healthImage,mineImage};
TextView indexText = (TextView) findViewById(R.id.tab_index_text);
TextView mallText = (TextView) findViewById(R.id.tab_mall_text);
TextView healthText = (TextView) findViewById(R.id.tab_health_text);
TextView mineText = (TextView) findViewById(R.id.tab_mine_text);
textViews=new TextView[]{indexText,mallText,healthText,mineText};
View indexLayout = findViewById(R.id.layout_index);
View mallLayout = findViewById(R.id.layout_mall);
View healthLayout = findViewById(R.id.layout_health);
View mineLayout = findViewById(R.id.layout_mine);
indexLayout.setOnClickListener(this);
mallLayout.setOnClickListener(this);
healthLayout.setOnClickListener(this);
mineLayout.setOnClickListener(this);
}
//把fragment添加到事务中.
public void addFragmentToTransaction(){
fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.add(R.id.content, fragments[0]);
transaction.add(R.id.content, fragments[1]);
transaction.add(R.id.content, fragments[2]);
transaction.add(R.id.content, fragments[3]);
transaction.commit();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.layout_index:
setTabSelection(0);
break;
case R.id.layout_mall:
setTabSelection(1);
break;
case R.id.layout_health:
setTabSelection(2);
break;
case R.id.layout_mine:
setTabSelection(3);
break;
default:
break;
}
}
//每个tab页对应的下标。0表示消息,1表示联系人,2表示动态,3表示设置。
private void setTabSelection(int index) {
//每次选中之前先清楚掉上次的选中状态
clearSelection();
//开启一个Fragment事务
FragmentTransaction transaction = fragmentManager.beginTransaction();
//先隐藏掉所有的Fragment,以防止有多个Fragment显示在界面上的情况
hideFragments(transaction);
//显示顶部标题
title_gone.setVisibility(View.VISIBLE);
switch (index) {
case 0:
imageButtons[0].setImageResource(R.drawable.tab_index_a);
textViews[0].setTextColor(0xFF3498db);
txt_title.setVisibility(View.GONE);
title_index.setVisibility(View.VISIBLE);
transaction.show(fragments[0]);
break;
case 1:
imageButtons[1].setImageResource(R.drawable.tab_mall_a);
textViews[1].setTextColor(0xFF3498db);
txt_title.setText("商城");
txt_title.setVisibility(View.VISIBLE);
title_index.setVisibility(View.GONE);
transaction.show(fragments[1]);
break;
case 2:
imageButtons[2].setImageResource(R.drawable.tab_health_a);
textViews[2].setTextColor(0xFF3498db);
txt_title.setText("健康");
txt_title.setVisibility(View.VISIBLE);
title_index.setVisibility(View.GONE);
transaction.show(fragments[2]);
break;
case 3:
imageButtons[3].setImageResource(R.drawable.tab_mine_a);
textViews[3].setTextColor(0xFF3498db);
title_gone.setVisibility(View.GONE);
transaction.show(fragments[3]);
break;
}
transaction.commit();
}
//清除掉所有的选中状态。
private void clearSelection() {
for (int i=0;i<4;i++){
textViews[i].setTextColor(0xFF999999);
}
imageButtons[0].setImageResource(R.drawable.tab_index);
imageButtons[1].setImageResource(R.drawable.tab_mall);
imageButtons[2].setImageResource(R.drawable.tab_health);
imageButtons[3].setImageResource(R.drawable.tab_mine);
}
//将所有的Fragment都置为隐藏状态。
private void hideFragments(FragmentTransaction transaction) {
for(int i=0;i<4;i++){
transaction.hide(fragments[i]);
}
}
}