package com.example.outlier.test;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import java.util.ArrayList;
import com.aurelhubert.ahbottomnavigation.AHBottomNavigation;
import com.aurelhubert.ahbottomnavigation.AHBottomNavigationItem;
public class MainActivity extends AppCompatActivity {
//这个变量表明当前是否处于登陆状态
private static boolean stateLogged = false;
public static boolean getStateLogged() {
return stateLogged;
}
public static void setStateLogged(boolean i) {
stateLogged = i;
}
//定义Fragement对象
private Fragment fg1;
private Fragment fg2;
private Fragment fg3;
private Fragment fg4;
// 定义FragmentManager对象管理器
private FragmentManager fragmentManager;
private ArrayList<AHBottomNavigationItem> bottomNavigationItems = new ArrayList<>();
private Handler handler = new Handler();
// UI
private AHBottomNavigation bottomNavigation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.hide();
}
fragmentManager = getSupportFragmentManager();
setChioceItem(0);
initUI();
action();
}
@Override
protected void onDestroy() {
super.onDestroy();
handler.removeCallbacksAndMessages(null);
}
/**
* Init UI
*/
private void initUI() {
bottomNavigation = (AHBottomNavigation) findViewById(R.id.bottom_navigation);
AHBottomNavigationItem item1 = new AHBottomNavigationItem(R.string.tab_1, R.drawable.buttonhome_06, R.color.color_tab_1);
AHBottomNavigationItem item2 = new AHBottomNavigationItem(R.string.tab_2, R.drawable.buttonhome_08, R.color.color_tab_2);
AHBottomNavigationItem item3 = new AHBottomNavigationItem(R.string.tab_3, R.drawable.buttonhome_11, R.color.color_tab_1);
AHBottomNavigationItem item4 = new AHBottomNavigationItem(getString(R.string.tab_4), ContextCompat.getDrawable(this, R.drawable.buttonhome_03), ContextCompat.getColor(this, R.color.color_tab_2));
bottomNavigationItems.add(item1);
bottomNavigationItems.add(item2);
bottomNavigationItems.add(item3);
bottomNavigationItems.add(item4);
bottomNavigation.addItems(bottomNavigationItems);
bottomNavigation.setTranslucentNavigationEnabled(true);
bottomNavigation.setOnTabSelectedListener(new AHBottomNavigation.OnTabSelectedListener() {
@Override
public boolean onTabSelected(int position, boolean wasSelected) {
switch (position) {
case 0:
setChioceItem(0);
break;
case 1:
setChioceItem(1);
break;
case 2:
setChioceItem(2);
break;
case 3:
setChioceItem(3);
break;
default:
break;
}
return true;
}
});
}
public void action() {
bottomNavigation.setColored(true);
bottomNavigation.restoreBottomNavigation(true);
bottomNavigation.setSelectedBackgroundVisible(true);
AHBottomNavigation.TitleState state = AHBottomNavigation.TitleState.ALWAYS_SHOW;
bottomNavigation.setTitleState(state);
}
/**
* 设置点击选项卡的事件处理
*
* @param index 选项卡的标号:0, 1, 2, 3
*/
private void setChioceItem(int index) {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
hideFragments(fragmentTransaction);
switch (index) {
case 0:
// firstImage.setImageResource(R.drawable.XXXX); 需要的话自行修改
// firstLayout.setBackgroundColor(gray);
// 如果fg1为空,则创建一个并添加到界面上
if (fg1 == null) {
fg1 = new FirstFragment();
Log.e("", "" + fg1);
fragmentTransaction.add(R.id.content, fg1);
} else {
// 如果不为空,则直接将它显示出来
fragmentTransaction.show(fg1);
}
break;
case 1:
if (fg2 == null) {
fg2 = new SecondPage();
fragmentTransaction.add(R.id.content, fg2);
} else {
fragmentTransaction.show(fg2);
}
break;
case 2:
// thirdImage.setImageResource(R.drawable.XXXX);
// thirdLayout.setBackgroundColor(gray);
if (fg3 == null) {
fg3 = new ThirdFragment();
fragmentTransaction.add(R.id.content, fg3);
} else {
fragmentTransaction.show(fg3);
}
break;
case 3:
// fourthImage.setImageResource(R.drawable.XXXX);
// fourthLayout.setBackgroundColor(gray);
if (fg4 == null) {
fg4 = new FourthFragment();
fragmentTransaction.add(R.id.content, fg4);
} else {
fragmentTransaction.show(fg4);
}
break;
}
fragmentTransaction.commit(); // 提交
}
/**
* 隐藏Fragment
*
* @param fragmentTransaction
*/
private void hideFragments(FragmentTransaction fragmentTransaction) {
if (fg1 != null) {
fragmentTransaction.hide(fg1);
}
if (fg3 != null) {
fragmentTransaction.hide(fg3);
}
if (fg2 != null) {
fragmentTransaction.hide(fg2);
}
if (fg4 != null) {
fragmentTransaction.hide(fg4);
}
}
}
Android动态导航栏的代码实现
5星 · 超过95%的资源 需积分: 16 147 浏览量
2017-08-06
02:24:22
上传
评论
收藏 80KB ZIP 举报
zz_Outlier
- 粉丝: 317
- 资源: 7
最新资源
- Screenshot_20240430_144340_com.ss.android.ugc.live.jpg
- 回到山沟沟.mp3
- 111111111111111111
- 基于matlab实现关于语音信号声源定位DOA估计所用的一些传统算法.rar
- 基于ultralytics-yolov8, 将其检测/分类/分割/姿态等任务移植到rk3588上
- Screenshot_2024-04-30-21-47-24-26.jpg
- 基于matlab实现波束形成,包括线阵、平面阵和圆阵
- Python自动生成excel周期报告源码
- 基于matlab实现DOA 估计和自适应波束形成.rar
- 一个基于yolov8的火灾检测部署
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈