您的位置:首页 > 其它

替代TabActivity,底部菜单主框架搭建

2015-08-16 17:38 309 查看
看到还有些人在使用TabActvity,这个已经被Google废弃了的类,为了大家方便,写了一个能代替TabActivity的东西。说白了也就是对viewpager跟底部菜单进行了一个封装,标准的底部菜单自定义控件已经写好,如果有另外的需求扩展底部菜单控件即可(继承BindPagerAdapterView)。

先上个效果图:



使用方式见代码:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: