【Android(安卓)新浪微博】--底部Tab的实现
16lz
2021-01-25
国际惯例先上图:
tabhost布局文件,注意tabhost,tabcontent和tabs这三个id一定要正确
<?xml version="1.0" encoding="utf-8"?><TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="match_parent" /> <TabWidget android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/selector" android:layout_alignParentBottom="true"> </TabWidget></RelativeLayout></TabHost>
每一个tab项的布局文件,上面图片下面是文字,
<?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" > <ImageView android:id="@+id/tab_iv_icon" android:layout_width="match_parent" android:layout_height="28.0dip" android:scaleType="fitCenter"/><TextView android:id="@+id/tab_tv_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="12.0sp" android:textColor="#FFFFFF" android:ellipsize="marquee" android:gravity="center" android:singleLine="true" android:marqueeRepeatLimit="1"/></LinearLayout>
最后是MainActivity继承自TabActivity
public class MainActivity extends TabActivity { private TabHost tabHost; private static final String HOME = "主页"; private static final String REFER = "提及"; private static final String ABOUT = "关于"; private static final String SEARCH = "搜索"; private static final String MORE = "更多"; //内容Intentprivate Intent homeIntent;private Intent referIntent;private Intent aboutIntent;private Intent searchIntent;private Intent moreIntent; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tabhost);//设置TabHost使用的布局文件 tabHost=this.getTabHost(); tabHost.setFocusable(true); prepareIntent(); setupIntent(); } private void setupIntent(){ tabHost.addTab(buildTabSpec(HOME,R.drawable.icon_1_n, homeIntent)); tabHost.addTab(buildTabSpec(REFER,R.drawable.icon_2_n, referIntent)); tabHost.addTab(buildTabSpec(ABOUT,R.drawable.icon_3_n, aboutIntent)); tabHost.addTab(buildTabSpec(SEARCH,R.drawable.icon_4_n, searchIntent)); tabHost.addTab(buildTabSpec(MORE,R.drawable.icon_5_n, moreIntent)); }private TabSpec buildTabSpec(String tag, int icon, Intent intent) {View view = View.inflate(MainActivity.this, R.layout.tab, null);((ImageView)view.findViewById(R.id.tab_iv_icon)).setImageResource(icon); ((TextView)view.findViewById(R.id.tab_tv_text)).setText(tag);return tabHost.newTabSpec(tag) .setIndicator(view) .setContent(intent);}private void prepareIntent() {homeIntent=new Intent(this, HomeActivity.class);referIntent=new Intent(this, ReferActivity.class);aboutIntent=new Intent(this, AboutActivity.class);searchIntent=new Intent(this,SearchActivity.class);moreIntent=new Intent(this, MoreActivity.class);}}
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- ADT(Android(安卓)Developer Tools)中配置SVN
- Android(安卓)FileInputStream类的使用
- Android(安卓)SELinux 一个编译错误
- 基于Android(安卓)studio3.6的三角剖分Delaunay之打包jar &调用j
- Android(安卓)读取excel (支持 xls和xlsx)