Fragment实现底部菜单栏

【Android UI设计与开发】5.底部菜单栏(二)使用Fragment实现底部菜单栏

既然 Fragment 取代了TabActivity,当然 TabActivity 的能实现的菜单栏,Fragment 当然也能实现。主要其实就是通过菜单栏的点击事件切换 Fragment 的显示和隐藏。

来看看栗子吧:

1.效果图来了:

 

2.代码具体实现

2.1 自定义底部菜单栏实现方式

(1)对应的 Fragment 编辑代码和布局实现在前面的 Fragment介绍和简单实现  中已经有提及,代码中没复杂的地方,此处略过,具体可看实例代码。

(2)菜单栏实现,这里使用代码实现的,其实也可以用布局文件实现,代码如下:

ViewIndicator

(3)最后就是主界面代码,切换 Fragment 的显示和隐藏以及菜单栏的选中状态

复制代码
package com.yanis.yc_ui_fragment_menu;

import com.yanis.yc_ui_fragment_menu.ViewIndicator.OnIndicateListener;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.view.View;

public class MainActivity extends FragmentActivity {
     public static Fragment[] mFragments;  
     
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        setFragmentIndicator(0);  
    }
    
     /** 
     * 初始化fragment 
     */  
    private void setFragmentIndicator(int whichIsDefault) { 
        //实例化 Fragment 集合
         mFragments = new Fragment[5];  
         mFragments[0] = getSupportFragmentManager().findFragmentById(R.id.fragment_home);  
         mFragments[1] = getSupportFragmentManager().findFragmentById(R.id.fragment_category);  
         mFragments[2] = getSupportFragmentManager().findFragmentById(R.id.fragment_down);  
         mFragments[3] = getSupportFragmentManager().findFragmentById(R.id.fragment_user);  
         mFragments[4] = getSupportFragmentManager().findFragmentById(R.id.fragment_setting);  
         //显示默认的Fragment
         getSupportFragmentManager().beginTransaction().hide(mFragments[0])  
                 .hide(mFragments[1]).hide(mFragments[2]).hide(mFragments[3]).hide(mFragments[4]).show(mFragments[whichIsDefault]).commit(); 
         //绑定自定义的菜单栏组件
        ViewIndicator mIndicator = (ViewIndicator) findViewById(R.id.indicator);  
        ViewIndicator.setIndicator(whichIsDefault);  
        mIndicator.setOnIndi
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值