viewpager+FragmentAdapter实现App主界面Tab
2015-08-17 11:08
435 查看
viewpager+FragmentAdapter 实现可滑动的Fragment 管理的Tab App主界面
Fragment 作为内容区域 ;管理自己的布局中的控件,事件和逻辑。 减轻MainActivity 的代码冗余 MainActivity 只起到一个调度Fragment 的作用,Viewpager 实现了界面滑动
如果界面需要滑动则使用viewpager+FragmentAdapter 如果界面不需要滑动则使用 Fragment 请看这篇博客:
[androidFragment实现APP主界面Tab页面切换和点击事件] (http://blog.csdn.net/u012373815/article/details/47709213)
效果图
案例源代码下载
Fragment+Viewpager实现app主界面.zip
案例结构
Fragment1.java Fragment2.java Fragment3.java
tab1.xml tab2.xml tab3.xml bottom.xml 的代码和这篇博客一样参照
android Fragment实现APP主界面Tab页面切换和点击事件
这里我就主要写一下 (为了兼容性请都引用android.support.v4.app)
MainActivity.java
activity_main.xml
Fragment 作为内容区域 ;管理自己的布局中的控件,事件和逻辑。 减轻MainActivity 的代码冗余 MainActivity 只起到一个调度Fragment 的作用,Viewpager 实现了界面滑动
如果界面需要滑动则使用viewpager+FragmentAdapter 如果界面不需要滑动则使用 Fragment 请看这篇博客:
[androidFragment实现APP主界面Tab页面切换和点击事件] (http://blog.csdn.net/u012373815/article/details/47709213)
效果图
案例源代码下载
Fragment+Viewpager实现app主界面.zip
案例结构
Fragment1.java Fragment2.java Fragment3.java
tab1.xml tab2.xml tab3.xml bottom.xml 的代码和这篇博客一样参照
android Fragment实现APP主界面Tab页面切换和点击事件
这里我就主要写一下 (为了兼容性请都引用android.support.v4.app)
MainActivity.java
import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.View; import android.view.View.OnClickListener; import android.widget.TextView; public class MainActivity extends FragmentActivity implements OnClickListener { private ViewPager viewpager; private TextView t1, t2, t3; private FragmentPagerAdapter fAdapter; private List<Fragment> mFragments; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initEvent(); setSelect(0); } /* * 初始化点击 */ private void initEvent() { // TODO Auto-generated method stub t1.setOnClickListener(this); t2.setOnClickListener(this); t3.setOnClickListener(this); } // 初始化 private void initView() { viewpager = (ViewPager) findViewById(R.id.viewpager); t1 = (TextView) findViewById(R.id.text1); t2 = (TextView) findViewById(R.id.text2); t3 = (TextView) findViewById(R.id.text3); mFragments=new ArrayList<Fragment>(); Fragment tab1=new Fragment1(); Fragment tab2=new Fragment2(); Fragment tab3=new Fragment3(); mFragments.add(tab1); mFragments.add(tab2); mFragments.add(tab3); //适配器 fAdapter =new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public int getCount() { // TODO Auto-generated method stub return mFragments.size(); } @Override public Fragment getItem(int arg0) { //根据位置返回Fragment return mFragments.get(arg0); } }; //添加内容到viewpager viewpager.setAdapter(fAdapter); //建立滑动监听 viewpager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { // TODO Auto-generated method stub int currentItem=viewpager.getCurrentItem(); setTab(currentItem); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } @Override public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub } }); } /** * 将tab 的text 初始化 */ public void reset() { t1.setText("标题1"); t2.setText("标题2"); t3.setText("标题3"); } @Override public void onClick(View v) { // TODO Auto-generated method stub reset(); switch (v.getId()) { case R.id.text1: setSelect(0); break; case R.id.text2: setSelect(1); break; case R.id.text3: setSelect(2); break; default: break; } } private void setSelect(int i) { setTab(i); //设置那个fragment 显示 viewpager.setCurrentItem(i); } //重用的代码抽出为方法 alt+shift+m 抽出代码的快捷键 private void setTab(int i) { reset(); switch (i) { case 0: t1.setText("选中"); break; case 1: t2.setText("选中"); break; case 2: t3.setText("选中"); break; } } }
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#EEEEEE" android:orientation="vertical" > <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" ></android.support.v4.view.ViewPager> <include layout="@layout/bottom" /> </LinearLayout>
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories