底层菜单FragmentTabHost

用FragmentTabHost实现底层菜单切换Fragment的效果:
先来看看效果图:
这里写图片描述

这里写图片描述

实现代码:
首先写2个Fragmnet
这里写图片描述

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="match_parent"
    android:orientation="vertical"
    >
    <FrameLayout
        android:id="@+id/fl"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

    </FrameLayout>
    <android.support.v4.app.FragmentTabHost
        android:id="@+id/tabhost"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:background="#3000">

    </android.support.v4.app.FragmentTabHost>

</LinearLayout>

MainActivity代码:

import android.os.Bundle;
import android.support.v4.app.FragmentTabHost;
import android.support.v7.app.AppCompatActivity;
import android.widget.FrameLayout;
import android.widget.TabHost;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        FrameLayout fl = (FrameLayout) findViewById(R.id.fl);
        FragmentTabHost tab = (FragmentTabHost) findViewById(R.id.tabhost);
        //设置FragmentTabHost参数,第一个是上下文,第二个是碎片管理这,第三个是Fragment应该放的位置的id
        tab.setup(this,getSupportFragmentManager(),R.id.fl);
        //newTabSpec设置下方的指示器(里面参数只是个标记随便写),
        // setIndicator设置只是指示器的样式,第一个参数是指示器的名字。第二个是样式,可以制作selector
        TabHost.TabSpec a = tab.newTabSpec("首页").setIndicator("首页",null);
        Bundle bundle = new Bundle();
        bundle.putString("name","首页");
        //将指示器与Fragment绑定通过Bundle进行传值
        tab.addTab(a,Fragment1.class,bundle);
        TabHost.TabSpec b = tab.newTabSpec("我的").setIndicator("我的",null);
        Bundle bundle2 = new Bundle();
        bundle2.putString("name","我的");
        tab.addTab(b,Fragment2.class,bundle2);
    }
}
gment2.class,bundle2);
    }
}

源码下载地址:

https://github.com/a2978157/MyFragmentTabHost

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值