使用场景,打算设计一个“底部菜单栏+其余可滑动的页面”的简单的功能。

package com.lanyuweng.mibaby;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.CalendarView;
import android.widget.TextView; import com.lanyuweng.mibaby.fragment.FragmentAdapter; public class MainActivity extends FragmentActivity implements OnClickListener{ private static final String TAG = "MainActivity-----"; public static final int TAB_CALENDAR = 0;
public static final int TAB_REMINDER = 1;
public static final int TAB_NOTE = 2;
public static final int TAB_MORE = 3; private CalendarView calendarView; private ViewPager viewPager;
private TextView tvCalendar,tvReminder,tvNote,tvMore; //定义适配器
private FragmentAdapter adapter; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main); initView();
} private void initView() { Log.i(TAG,"initView----"); viewPager = (ViewPager)findViewById(R.id.viewpager);
tvCalendar = (TextView) findViewById(R.id.tvCalendar);
tvReminder = (TextView) findViewById(R.id.tvReminder);
tvNote = (TextView) findViewById(R.id.tvNote);
tvMore = (TextView) findViewById(R.id.tvMore); tvCalendar.setOnClickListener(this);
tvReminder.setOnClickListener(this);
tvNote.setOnClickListener(this);
tvMore.setOnClickListener(this); adapter = new FragmentAdapter(getSupportFragmentManager());
viewPager.setAdapter(adapter);
} @Override
public void onClick(View arg0) { switch (arg0.getId()) {
case R.id.tvCalendar:
viewPager.setCurrentItem(TAB_CALENDAR);
findViewById(R.id.tvConfig);
break; case R.id.tvMore:
viewPager.setCurrentItem(TAB_MORE);
break; case R.id.tvNote:
viewPager.setCurrentItem(TAB_NOTE);
break; case R.id.tvReminder:
viewPager.setCurrentItem(TAB_REMINDER);
break; default:
break;
}
} @Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
} }

通过两种方式来切换页面,左右滑动以及点击底部菜单栏。第二种方式是使用onClick()方法,第二种方式则是以继承FragmentPagerAdapter来控制Fragment的显示。

package com.lanyuweng.mibaby.fragment; 

import com.lanyuweng.mibaby.MainActivity;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter; public class FragmentAdapter extends FragmentPagerAdapter { public final static int TAB_COUNT = 4;
public FragmentAdapter(FragmentManager fm) {
super(fm);
} @Override
public Fragment getItem(int arg0) { switch (arg0) {
case MainActivity.TAB_CALENDAR:
CalendarFragment calendarFragment = new CalendarFragment();
return calendarFragment; case MainActivity.TAB_REMINDER:
ReminderFragment reminderFragment = new ReminderFragment();
return reminderFragment; case MainActivity.TAB_NOTE:
NoteFragment noteFragment = new NoteFragment();
return noteFragment;
case MainActivity.TAB_MORE:
MoreFragment moreFragment = new MoreFragment();
return moreFragment;
}
return null;
} @Override
public int getCount() {
// TODO Auto-generated method stub
return TAB_COUNT;
} }

同时,XML为:

<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:background="@drawable/background"
android:orientation="vertical" > <android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="9" /> <LinearLayout
android:layout_width="fill_parent"
android:layout_height="55sp"
android:layout_weight="1"
android:background="@color/burlywood"
android:orientation="horizontal" > <TextView
android:id="@+id/tvCalendar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:drawableTop="@drawable/calendar" android:gravity="center"
android:text="@string/calendar"
android:textSize="12sp"
tools:ignore="NestedWeights" >
</TextView> <TextView
android:id="@+id/tvReminder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:drawableTop="@drawable/reminder"
android:gravity="center"
android:text="@string/reminder"
android:textSize="12sp" >
</TextView> <TextView
android:id="@+id/tvNote"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:drawableTop="@drawable/note"
android:gravity="center"
android:text="@string/note"
android:textSize="12sp" >
</TextView> <TextView
android:id="@+id/tvMore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:drawableTop="@drawable/more"
android:gravity="center"
android:text="@string/more"
android:textSize="12sp" >
</TextView>
</LinearLayout> </LinearLayout>

记录一下fragmentactivity+viewpager+adapter的使用,以备后用

Android FragmentActivity+viewpager的使用的更多相关文章

  1. Android中ViewPager实现滑动条及与Fragment结合的实例教程

    ViewPager类主要被用来实现可滑动的视图功能,这里我们就来共同学习Android中ViewPager实现滑动条及与Fragment结合的实例教程,需要的朋友可以参考下 自主实现滑动指示条先上一个 ...

  2. Android中viewPager的一两点使用

    Android中viewPager的一两点使用 viewPager是谷歌官方提供的一种方便实现页面滑动效果的控件,可以直接使用也可以和fragment联合使用.这里只简单说下直接使用. 使用viewP ...

  3. Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878本文出自[DylanAndroid的博客] Android中Vie ...

  4. android之ViewPager

    在android中ViewPager是非常常用的控件.它在android.support.v4.view.ViewPager下.你们自己可以进http://developer.android.com/ ...

  5. Android listview viewpager解决冲突 滑动

    Android listview viewpager滑动 跳动 冲突解决 ListView中嵌套ViewPage有或者滑动手势冲突解决   在listview 上使用 addHeaderView 在第 ...

  6. Android 使用ViewPager实现左右循环滑动图片

    ViewPager这个小demo实现的是可以左右循环滑动图片,下面带索引,滑到最后一页在往右滑动就要第一页,第一页往左滑动就到最后一页,先上效果图,用美女图片是我一贯的作风,呵呵 1.    首先看一 ...

  7. android使用ViewPager实现欢迎引导页

    android使用ViewPager实现欢迎引导页 大多数APP第一次启动的时候,都会有一个引导界面,左右滑动,到最后一张,用户点击才再次进入主界面.当第二次启动的时候,则直接进入主界面. 这种效果一 ...

  8. android下ViewPager的使用,带下部选项栏的切换动画

    (文章针对类似我这种初学者,大神看到不要嘲笑) 演示 我的规矩是先上GIF动画效果(Linux下用转的GIF,清晰度还可以但是不知道为什么放博客上,界面会这么大): 代码: android中有View ...

  9. Android FragmentActivity 嵌套 Fragment 调用startActivityForResult返回的requestCode错误

    Android FragmentActivity 嵌套 Fragment 调用startActivityForResult返回的requestCode错误 此时,要在调用startActivityFo ...

随机推荐

  1. Java Project和Web Project 区别

    java project是java工程,不包括JSP等前台页面的代码 大部分是CS结构的工程和一些jar包 web project是web工程,是BS结构的系统 web project部署到服务器上 ...

  2. Photoshop:笔刷制作和安装

    笔刷制作 1.新建一个文档,大小为要制作的笔刷大小,把画笔图像放里面 2.选择:菜单->编辑->定义画笔预设,这时在画笔面板中会出现刚定义的画笔 3.存储画笔,可以把当前的笔刷保存为一个. ...

  3. [iOS]iPhone利用<极光推送>实现远程推送

    准备: 1. 一个Xcode工程 2. 开发者账号 3. 真机 (重要,模拟器无法进行远程推送,因为模拟器没有UDID) 第一步:绑定工程的Bundle Identifer 首先当然要登录https: ...

  4. redhat 7.2 配置yum源

    http://blog.csdn.net/wylfengyujiancheng/article/details/50418930

  5. 一个zip压缩类,欢迎吐槽

    package com.utils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import j ...

  6. mapper device&lvm

    http://www.ibm.com/developerworks/cn/linux/l-devmapper/ http://baike.baidu.com/view/361916.htm?fr=al ...

  7. selenium--大家庭介绍

    安装好配置环境后,开始我的selenium之旅.简单的了解一下色,selenium大家庭的组成. Selenium是ThoughtWorks专门为 Web 应用而开发的功能测试工具.Selenium使 ...

  8. Html,Css,Javascript及其他的注释方法详解

    一.HTML的注释方法<!-- html注释:START -->内容<!-- html注释:END --> 包含在“<!--”与“-->”之间的内容将会被浏览器忽略 ...

  9. TeeChart的X轴为时间,多个Y轴的显示

    最后上代码 public partial class Test : Form { private TChart tChart = new TChart(); ; public Test() { Ini ...

  10. Lunix中文乱码解决方案

    sudo vi /var/lib/locales/supported.d/local#添加下面的中文字符集zh_CN.GBK GBKzh_CN.GB2312 GB2312zh_CN.GB18030 G ...