fragmenttabhost 也是先简单记一下,以后再改
2016-09-19 21:31
183 查看
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@+id/realTabContent"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<android.support.v4.app.FragmentTabHost
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/maintab_toolbar_bg" >
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp" />
</android.support.v4.app.FragmentTabHost>
</LinearLayout>
听说第二个framelayout不用不行,可能会不兼容4.0之前的。暂时还没有测试。tabwidget好像是封装到fragmenttabhost里面了,源码也还没有看。
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTabHost;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TextView;
public class MainActivityb1 extends FragmentActivity {
private FragmentTabHost tabHost;
// 定义数组保存fragment
private Class[] fragmentArray = { Fragment1.class, Fragment2.class, Fragment3.class, Fragment4.class,
Fragment5.class };
private int mImageViewArray[] = { R.drawable.tab_home_btn, R.drawable.tab_msg_btn, R.drawable.tab_selfinfo_btn,
R.drawable.tab_square_btn, R.drawable.tab_more_btn };
private String textviewArray[] = { "首页", "消息", "好友", "广场", "更多" };
private LayoutInflater inflater;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_b1);
inflater = LayoutInflater.from(this);
tabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
tabHost.setup(this, getSupportFragmentManager(), R.id.realTabContent);
for (int i = 0; i < textviewArray.length; i++) {
tabHost.addTab(tabHost.newTabSpec(textviewArray[i]).setIndicator(getImageView(i)), fragmentArray[i], null);
tabHost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.selector_tab_bg);
}
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
//有这么个方法
}
});
}
private View getImageView(int index) {
View view = inflater.inflate(R.layout.item_fragmenttabhost, null);
ImageView item_iv = (ImageView) view.findViewById(R.id.item_iv);
TextView item_tv = (TextView) view.findViewById(R.id.item_tv);
item_iv.setImageResource(mImageViewArray[index]);
item_tv.setText(textviewArray[index]);
return view;
}
}
备注:fragment需要自己创建(v4包下)。
注意:需要继承fragmentactivity(v4包下)
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@+id/realTabContent"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<android.support.v4.app.FragmentTabHost
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/maintab_toolbar_bg" >
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp" />
</android.support.v4.app.FragmentTabHost>
</LinearLayout>
听说第二个framelayout不用不行,可能会不兼容4.0之前的。暂时还没有测试。tabwidget好像是封装到fragmenttabhost里面了,源码也还没有看。
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTabHost;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TextView;
public class MainActivityb1 extends FragmentActivity {
private FragmentTabHost tabHost;
// 定义数组保存fragment
private Class[] fragmentArray = { Fragment1.class, Fragment2.class, Fragment3.class, Fragment4.class,
Fragment5.class };
private int mImageViewArray[] = { R.drawable.tab_home_btn, R.drawable.tab_msg_btn, R.drawable.tab_selfinfo_btn,
R.drawable.tab_square_btn, R.drawable.tab_more_btn };
private String textviewArray[] = { "首页", "消息", "好友", "广场", "更多" };
private LayoutInflater inflater;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_b1);
inflater = LayoutInflater.from(this);
tabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
tabHost.setup(this, getSupportFragmentManager(), R.id.realTabContent);
for (int i = 0; i < textviewArray.length; i++) {
tabHost.addTab(tabHost.newTabSpec(textviewArray[i]).setIndicator(getImageView(i)), fragmentArray[i], null);
tabHost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.selector_tab_bg);
}
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
//有这么个方法
}
});
}
private View getImageView(int index) {
View view = inflater.inflate(R.layout.item_fragmenttabhost, null);
ImageView item_iv = (ImageView) view.findViewById(R.id.item_iv);
TextView item_tv = (TextView) view.findViewById(R.id.item_tv);
item_iv.setImageResource(mImageViewArray[index]);
item_tv.setText(textviewArray[index]);
return view;
}
}
备注:fragment需要自己创建(v4包下)。
注意:需要继承fragmentactivity(v4包下)
相关文章推荐
- tabhost先简单记一下,以后再改(即使一样的,还是自己写的代码比较亲)
- 最近做毕业设计发现市场上的Delphi书中关于TArrayField的一个错误理解,这里现简单的提一下以后有时间在好好的研究一下
- 简单封装一下 win内核线程池 以后直接继承 不用复写
- 蛙蛙推荐:简单介绍一下托管容器持久性(CMP),顺便征集一下.NET CMP2.0的改进方案
- 简单介绍一下水晶报表的推与拉两种模式
- 遇到一个很难说话的人,要求在网页上点一下文字,变成另外一些文字,下面是简单的实现
- 抄首海子的小诗,憧憬一下简单的幸福生活
- 在这里对"DataGrid(WinForm)显示行号最简单的方法" 纠正一下错误的地方
- 简单的整理了一下分页,希望对初学者有帮助
- 从现在开始学习一下在 Office 平台上进行开发一些简单的应用程序,欢迎有从事这方面的高手和同道指点交流。
- 简单介绍一下Dian团队(非官方版本)
- 我写的一个简单游戏,希望各位给参考一下[steeven]
- 简单过滤一下广告的代码
- 让我简单介绍一下Oracle sequence
- 用javaScript写了两个简单网页,留着以后参考(之一)
- 简单说一下我对这个CRM系统的设计方案哦
- 谁能简单说一下活动目录是什么东西?
- 一睹64位Windows XP的芳容(也是从网上copy的,扫了一下,没有仔细看)
- 简单总结一下这几个月的活动吧。公司春游活动,参观怀柔影视城。
- 暑假经历之ACM培训第七天--做一个简单题目安慰一下