Android 实现类似微信页面底部导航效果

参考的时候需要修改的地方做一下更改,里面有一些多余的代码没有删除。
.java里面的主要代码

public class MainActivity extends BaseActivity implements TabChangeListener {
private Fragment[] fragments;
private FragZaiXianYuYue fragZaiXianYuYue;
private FragDaoLuJiuYuan fragDaoLuJiuYuan;
private FragJiFenShangCheng fragJiFenShangCheng;
private FragMe fragMe;
private ImageView img_right;
private ImageView[] imagebuttons;
private ImageView img_me_notity;
private TextView[] textviews;
private int index;
private int currentTabIndex;// 当前fragment的index
private int keyBackClickCount = 0;
private int indexChange;
private boolean isChangeTab = false;

@Override
protected void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
super.onCreate(arg0);
setContentView(R.layout.mainactivity);
initView();
initTabView();
FragBYRecord.setTabChangeListener(this);
FragWXRecord.setTabChangeListener(this);
registerMessageReceiver();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
isForeground = true;
requestMaintenance();
if (isChangeTab) {
if (indexChange == 0) {
viewTitle.setZhongJianText(R.string.frag_zxyy);
tv_left.setVisibility(View.GONE);
} else if (indexChange == 0) {
viewTitle.setZhongJianText(R.string.frag_dljy);
tv_left.setVisibility(View.GONE);
}
changeTab(indexChange);
isChangeTab = false;
}
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
isForeground = false;
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
if(null != mMessageReceiver)
unregisterReceiver(mMessageReceiver);
}
private void initView() {
viewTitle = (ViewTitle) findViewById(R.id.title_bar);
img_right = viewTitle.getYoubianView();
img_right.setVisibility(View.VISIBLE);
tv_left = viewTitle.getZuobianTextView();
viewTitle.getZuobianView().setVisibility(View.GONE);
tv_left.setText("XXXX");
img_right.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(MainActivity.this,
MineActivity.class);
MineActivity.mFragValue = MineActivity.FRAG_SYSTEMMESSAGE;
startActivity(intent);
}
});
tv_left.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
fragMe.addNewCar();
}
});
}
private void initTabView() {
fragZaiXianYuYue = new FragZaiXianYuYue();
fragDaoLuJiuYuan = new FragDaoLuJiuYuan();
fragJiFenShangCheng = new FragJiFenShangCheng();
fragMe = new FragMe();
fragments = new Fragment[] { fragZaiXianYuYue, fragDaoLuJiuYuan,
fragJiFenShangCheng, fragMe };
imagebuttons = new ImageView[4];
imagebuttons[0] = (ImageView) findViewById(R.id.ib_zzyy);
imagebuttons[1] = (ImageView) findViewById(R.id.ib_dljy);
imagebuttons[2] = (ImageView) findViewById(R.id.ib_jfsc);
imagebuttons[3] = (ImageView) findViewById(R.id.ib_me);
img_me_notity = (ImageView) findViewById(R.id.ib_me_notity);
imagebuttons[0].setSelected(true);
viewTitle.setZhongJianText(R.string.frag_zxyy);
textviews = new TextView[4];
textviews[0] = (TextView) findViewById(R.id.tv_ib_zzyy);
textviews[1] = (TextView) findViewById(R.id.tv_dljy);
textviews[2] = (TextView) findViewById(R.id.tv_jfsc);
textviews[3] = (TextView) findViewById(R.id.tv_me);
textviews[0]
.setTextColor(getResources().getColor(R.color.color_yellow));
// 添加显示第一个fragment
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, fragZaiXianYuYue)
.add(R.id.fragment_container, fragDaoLuJiuYuan)
.add(R.id.fragment_container, fragJiFenShangCheng)
.add(R.id.fragment_container, fragMe).hide(fragDaoLuJiuYuan)
.hide(fragJiFenShangCheng).hide(fragMe).show(fragZaiXianYuYue)
.commit();
}
public void onTabClicked(View view) {
switch (view.getId()) {
case R.id.re_zzyy:
index = 0;
if (fragZaiXianYuYue != null) {
}
viewTitle.setZhongJianText(R.string.frag_zxyy);
tv_left.setVisibility(View.GONE);
changeTab(index);
break;
case R.id.re_dljy:
index = 1;
viewTitle.setZhongJianText(R.string.frag_dljy);
tv_left.setVisibility(View.GONE);
changeTab(index);
break;
case R.id.re_jfsc:
if(SharePreferUtil.getBoolean(CommonString.HAVESERVICE, false)){
index = 2;
viewTitle.setZhongJianText(R.string.frag_jfsc);
tv_left.setVisibility(View.GONE);
fragJiFenShangCheng.requestJudgeCar();
changeTab(2);
if(SharePreferUtil.getBoolean("isFristGoShop", true)){
SharePreferUtil.putBoolean("isFristGoShop", false);
fragJiFenShangCheng.mengcengDialog();
}
}else{
showAddServiceDialog();
}
break;
case R.id.re_me:
index = 3;
viewTitle.setZhongJianText(R.string.frag_me);
tv_left.setVisibility(View.VISIBLE);
changeTab(index);
break;
}
}
public void changeTab(int index) {
if (currentTabIndex != index) {
FragmentTransaction trx = getSupportFragmentManager()
.beginTransaction();
trx.hide(fragments[currentTabIndex]);
if (!fragments[index].isAdded()) {
trx.add(R.id.fragment_container, fragments[index]);
}
trx.show(fragments[index]).commit();
}
imagebuttons[currentTabIndex].setSelected(false);
// 把当前tab设为选中状态
imagebuttons[index].setSelected(true);
textviews[currentTabIndex].setTextColor(getResources().getColor(
R.color.white));
textviews[index].setTextColor(getResources().getColor(
R.color.color_yellow));
currentTabIndex = index;
}

mainactivity.xml:
 <include layout="@layout/layout_bottom"/>
layout_bottom.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="@color/black"
    android:orientation="vertical" >

<!-- 普通底部导航 -->

<LinearLayout
        android:id="@+id/main_bottom"
        android:layout_width="match_parent"
        android:layout_height="54dp"
        android:gravity="center_vertical"
        android:orientation="horizontal" >

<RelativeLayout
            android:id="@+id/re_zzyy"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:onClick="onTabClicked"
            android:padding="3dp" >

<RelativeLayout
                android:layout_width="60dp"
                android:layout_height="match_parent"
                android:layout_centerHorizontal="true"
                android:gravity="center" >

<ImageView
                    android:id="@+id/ib_zzyy"
                    android:layout_width="30dp"
                    android:layout_height="28dp"
                    android:layout_centerHorizontal="true"
                    android:focusable="false"
                    android:scaleType="centerInside"
                    android:src="@drawable/tab_zaixianyuyue" />

<TextView
                    android:id="@+id/tv_ib_zzyy"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/ib_zzyy"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="3dp"
                    android:textColor="@color/white"
                    android:text="@string/frag_zxyy"
                    android:textSize="12sp" />
            </RelativeLayout>
        </RelativeLayout>

<RelativeLayout
            android:id="@+id/re_dljy"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:onClick="onTabClicked"
            android:padding="3dp" >

<RelativeLayout
                android:layout_width="60dp"
                android:layout_height="match_parent"
                android:layout_centerHorizontal="true"
                android:gravity="center" >

<ImageView
                    android:id="@+id/ib_dljy"
                    android:layout_width="30dp"
                    android:layout_height="28dp"
                    android:layout_centerHorizontal="true"
                    android:focusable="false"
                    android:scaleType="centerInside"
                    android:src="@drawable/tab_daolujiuyuan" />

<TextView
                    android:id="@+id/tv_dljy"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/ib_dljy"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="3dp"
                    android:textColor="@color/white"
                    android:text="@string/frag_dljy"
                    android:textSize="12sp" />
            </RelativeLayout>
        </RelativeLayout>

<RelativeLayout
            android:id="@+id/re_jfsc"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:onClick="onTabClicked"
            android:padding="3dp" >

<RelativeLayout
                android:layout_width="60dp"
                android:layout_height="match_parent"
                android:layout_centerHorizontal="true"
                android:gravity="center" >

<ImageView
                    android:id="@+id/ib_jfsc"
                    android:layout_width="30dp"
                    android:layout_height="28dp"
                    android:layout_centerHorizontal="true"
                    android:focusable="false"
                    android:scaleType="centerInside"
                    android:src="@drawable/tab_jifenshangcheng" />

<TextView
                    android:id="@+id/tv_jfsc"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/ib_jfsc"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="3dp"
                    android:textColor="@color/white"
                    android:text="@string/frag_jfsc"
                    android:textSize="12sp" />
            </RelativeLayout>
        </RelativeLayout>

<RelativeLayout
            android:id="@+id/re_me"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:onClick="onTabClicked"
            android:padding="3dp" >

<RelativeLayout
                android:layout_width="60dp"
                android:layout_height="match_parent"
                android:layout_centerHorizontal="true"
                android:gravity="center" >

<ImageView
                    android:id="@+id/ib_me"
                    android:layout_width="30dp"
                    android:layout_height="28dp"
                    android:layout_centerHorizontal="true"
                    android:focusable="false"
                    android:scaleType="centerInside"
                    android:src="@drawable/tab_me" />
                
                <ImageView
                    android:id="@+id/ib_me_notity"
                    android:layout_width="5dp"
                    android:layout_height="5dp"
                    android:layout_alignTop="@+id/ib_me"
                    android:layout_alignRight="@+id/ib_me"
                    android:scaleType="centerInside"
                    android:src="@drawable/app_34_icon_point_normal"
                    android:visibility="gone" />

<TextView
                    android:id="@+id/tv_me"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/ib_me"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="3dp"
                    android:textColor="@color/white"
                    android:text="@string/frag_me"
                    android:textSize="12sp" />
            </RelativeLayout>
        </RelativeLayout>
    </LinearLayout>

</LinearLayout>

Android 实现类似微信页面底部导航效果相关推荐

  1. 新版微信页面底部导航问题

    在移动端开发微信页面的过程中,出现这样一个问题 自己定好的底部导航栏下面会多出一行微信自带的底部返回栏,影响我们原型的体验,就需要对此做出优化: 首先明确问题所在 通过查询发现底部返回栏的机制是:页面 ...

  2. Android studio实现底部导航,Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果...

    BottomBar BottomBar是Github上的一个开源框架,因为从1.3.3开始不支持fragments了,要自己配置,弄了很久,不管是app的fragment还是V4 的程序总是总是闪退. ...

  3. android自定义底部中间突出导航栏,Android选中突出背景效果的底部导航栏功能

    今天在群里看到一个底部导航选中突出效果像这样 就想着 这个应该怎么做呢,我记得类似咸鱼那种的是中间突出,不像这种 是选中哪个,哪个就突出 第一种方法 简单快捷,让UI帮忙切几张带突出背景的图片, 选中 ...

  4. android底部导航栏选中动画,Android选中突出背景效果的底部导航栏功能

    今天在群里看到一个底部导航选中突出效果像这样 就想着 这个应该怎么做呢,我记得类似咸鱼那种的是中间突出,不像这种 是选中哪个,哪个就突出 第一种方法 简单快捷,让UI帮忙切几张带突出背景的图片, 选中 ...

  5. android radiobutton底部导航,android中Fragment+RadioButton实现底部导航栏

    在App中经常看到这样的tab底部导航栏 那么这种效果是如何实现,实现的方式有很多种,最常见的就是使用Fragment+RadioButton去实现.下面我们来写一个例子 首先我们先在activity ...

  6. 微信 设置底部导航栏

    转 微信小程序设置底部导航栏目方法 2016年10月27日 10:58:06 阅读数:50830 标签: 微信小程序 收起 个人分类: 微信小程序 微信小程序底部想要有一个漂亮的导航栏目,不知道怎么制 ...

  7. 在android Studio中设计app的底部导航栏

    准备工作 新建一个空白android项目 命名为csdn 在res/layout路径下设置主页面 使用线性布局 linearLayout 使用自定义的viewPager(切换多个页面会秒跳转,提升体验 ...

  8. ▲ Android仿腾讯WiFi底部导航

    需求就是实现一个类似腾讯WiFi的底部导航 先上一个效果图 实现思路 (1)UI布局我采用的 RelativeLayout 加FrameLayout 还有RadioGroup来实现的 (2)中间那个W ...

  9. 仿抖音底部导航效果(二)

    继续实现仿抖音底部导航 今天要实现效果如下图 首先在原基础的布局中加入一个ImageView <LinearLayoutandroid:layout_width="wrap_conte ...

最新文章

  1. matlab ros 手势识别,使用MATLAB读取分析ros记录的.bag文件
  2. 如何查看及修改Oracle的字符编码
  3. 【ES6(2015)】RegExp
  4. springboot tomcat启动
  5. Go 模块--开始使用Go Modules
  6. 换IP的几种常见方法
  7. Web应用程序中Resource Bundle技术概述
  8. 拼多多摄像头是否安全的检测
  9. 用通俗的语言解释贝叶斯公式
  10. 网络攻防技术——shellcode编写
  11. SpringBoot 动态设置响应头的content-type
  12. Simulink代码生成:通过Matlab Function集成C函数
  13. 应该怎么正确向老板提加薪呢?
  14. Unexpected error while obtaining screenshot from device: EOF
  15. 网易微专业java高级笔记_网易前端微专业------页面架构笔记
  16. MAC无法重装anaconda3
  17. 问题1:老毛桃一键装机打开后安装目录只显示u盘
  18. 无人机自动悬停的秘密
  19. Win10系统antimalware service executable进程占用cpu过高的问题
  20. 京东入职一周感悟:4个匹配和4个观点

热门文章

  1. 信用包信:数字钱包信用好有哪些?19年数字钱包信用排行榜
  2. 小皮面板(PhPsTudy)安装及使用教程(linux)
  3. 企业怎样实现微信营销?SCRM软件可以做到吗?
  4. Mendeley文献导入与管理
  5. 字符串常量断行处理(加号处理)
  6. http://www.blogjava.net/woxingwosu/archive/2008/01
  7. 中国重载工业机器人行业“十四五”规划及未来需求报告2021-2027年
  8. visualize python_GitHub - laishenggx/PUP-visualize: Python3可视化雷达PUP数据产品(CINRAD-PUP)...
  9. SQL Server 2005 Express 远程连接 客户端 远程访问 设置 全攻略 (适用 SQL Server 2005 其他版本)
  10. 寻找Nemo的乐趣:什么是二叉搜索树?