替代TabActivity,底部菜单主框架搭建
2015-08-16 17:38
309 查看
看到还有些人在使用TabActvity,这个已经被Google废弃了的类,为了大家方便,写了一个能代替TabActivity的东西。说白了也就是对viewpager跟底部菜单进行了一个封装,标准的底部菜单自定义控件已经写好,如果有另外的需求扩展底部菜单控件即可(继承BindPagerAdapterView)。
先上个效果图:
使用方式见代码:
其中有一个注意点,选中图片需要根据android:state_selected=”true”设置,如果用pressed,在跳转时,会丢失pressed状态,图片变成未选中的样式。
我在上线的项目中已经使用了该UI框架,使用过程中很容易满足美工的设计,推荐大家使用。而且本身它也是可扩展的,重写onlayout方法即可。
Demo下载地址
GitHub:TabView
先上个效果图:
使用方式见代码:
package com.example.tabtest; import com.idroid.tab.TabFrgmAdapter; import com.idroid.tab.TabSelectView; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.view.ViewPager; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager); viewPager.setAdapter(new TabFrgmAdapter(getSupportFragmentManager(), AFrgm.class, BFrgm.class, CFrgm.class)); TabSelectView mTabsView = (TabSelectView) findViewById(R.id.tabs); mTabsView.setViewPager(viewPager); final String[] strs = new String[] { "首页", "第二页", "我" }; final int[] images = new int[] { R.drawable.image_slt, R.drawable.image_slt, R.drawable.image_slt }; mTabsView.setAdapter(new BaseAdapter() { @Override public View getView(int position, View convertView, ViewGroup parent) { convertView = View.inflate(parent.getContext(), R.layout.tab_item, null); ImageView image = (ImageView) convertView.findViewById(R.id.item_image); image.setImageResource(images[position]); TextView textView = (TextView) convertView.findViewById(R.id.item_text); textView.setText(strs[position]); return convertView; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @Override public int getCount() { // TODO Auto-generated method stub return strs.length; } }); mTabsView.setCurrentItem(0); } }
其中有一个注意点,选中图片需要根据android:state_selected=”true”设置,如果用pressed,在跳转时,会丢失pressed状态,图片变成未选中的样式。
我在上线的项目中已经使用了该UI框架,使用过程中很容易满足美工的设计,推荐大家使用。而且本身它也是可扩展的,重写onlayout方法即可。
Demo下载地址
GitHub:TabView
相关文章推荐
- C++ Primer 学习笔记_45_STL实践与分析(19)--建筑常规算法
- RPC
- NOI 2015 day1 T2 软件包管理器
- C++面试题
- Java学习之路0804<复习>(线程、注解)
- UITableView优化技巧
- UVa 1225 - Digit Counting
- 在PKI的技术路上的经历,在此与大家共勉
- Myeclipse 经常loading descriptor for XXX ,然后卡死
- 两个jre"和"三个lib"的功能简单扼要的解释
- Tomcat数据库连接池的配置方法总结
- CSS Line Box:溢出与折行
- nodejs抓取数据一(列表抓取)
- I Hate It 线段树
- HDFS在Linux下的命令
- linux ip配置
- probably,possibly,may的用法区别是什么呀
- HDU 4286 Data Handler // 模拟链表
- button的使用
- AngularJS 路由:ng-route 与 ui-router