底部导航栏FragmenTabHost
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentTabHost mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
// 初始化
mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator(getIndicator(0)),
TestFragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator(getIndicator(1)),
SeFragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("custom").setIndicator(getIndicator(2)),
ThrFragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("throttle").setIndicator(getIndicator(3)),
FouFragment.class, null);
// 去掉分割线 必须在添加完标签之后才能执行不然会报错
mTabHost.getTabWidget().setDividerDrawable(null);
}
// 设置图片时要用到 格式最好为选择器selector
// selector使用时需要指明正确的状态对应的图片
// 否则顺序可能导致不生效
private int[] imgs = new int[]{R.drawable.nav_one,
R.drawable.nav_one, R.drawable.nav_one, R.drawable.nav_one};
// 用来设置自定义指示器
private View getIndicator(int index) {
View view = getLayoutInflater().inflate(R.layout.layout_nav, null);
ImageView imgTab = (ImageView) view.findViewById(R.id.img_navTab);
imgTab.setImageResource(imgs[index]);
return view;
}
}
XML文件中的id最好不要修改
<android.support.v4.app.FragmentTabHost
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0"/>
<FrameLayout
android:id="@+id/realtabcontent"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<TabWidget
android:id="@android:id/tabs"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0"/>
</LinearLayout>
</android.support.v4.app.FragmentTabHost>
也可以通过为tabwidget的 android:divider=”#00000000”
来隐藏分割线