android 底部菜单写法之FragmentTabHost
16lz
2021-01-23
android底部菜单写法很多种类,今天用的是FragmentTabHost:代码很简单:
Mainacitivity中代码:BaseActivity继承的FragmentActivity
@ContentView(R.layout.activity_main)public class MainActivity extends BaseActivity { private String[] names = {"书架", "书城", "我的"}; private String[] tags = {"bookshelf", "bookshop", "aboutme"}; private Class[] fragmentClass = {BookshelfFragment.class, BookshopFragment.class, AboutmeFragment.class}; private int[] images = {R.drawable.tab_bookshelf_selector, R.drawable.tab_bookshop_selector, R.drawable.tab_aboutme_selector,}; @ViewInject(android.R.id.tabhost) private FragmentTabHost tabHost; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); x.view().inject(this); tabHost.setup(this, getSupportFragmentManager(), android.R.id.tabcontent); tabHost.getTabWidget().setDividerDrawable(null); for (int i = 0; i < images.length; i++) { TabHost.TabSpec tabSpec = tabHost.newTabSpec(tags[i]).setIndicator(getImageView(i)); tabHost.addTab(tabSpec, fragmentClass[i], null); tabHost.getTabWidget().getChildAt(i).setBackgroundResource(R.color.material_grey_100); } } private View getImageView(int index) { View view = View.inflate(this, R.layout.item_tab, null); ImageView iv = (ImageView) view.findViewById(R.id.iv_icon); TextView tv = (TextView) view.findViewById(R.id.tv_name); iv.setImageResource(images[index]); tv.setText(names[index]); return view; }}
<?xml version="1.0" encoding="utf-8"?>
布局文件item_tab代码:
<?xml version="1.0" encoding="utf-8"?>
选择器tab_textcolor_selector代码:
<?xml version="1.0" encoding="utf-8"?>
最终效果:
更多相关文章
- LinearLayout布局中layout_weight的用法
- Anko:Android 代码动态布局的新方案
- Android 获取系统权限的代码
- 编译代码报出Android library projects cannot be launched错误
- 解决Eclipse3.6中Android 代码自动补全卡死的问题
- android 下测试网络的丢包率和延迟 的代码
- Android局部布局替换实现