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

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. Eclipse jetty

    下载Eclipse的Jetty插件run-jetty-run http://download.csdn.net/detail/zhwq1216/7995627 当修改文件时,不需要进行服务重启设置 R ...

  2. utf-8中的汉字占用多少字节

    转载:http://blog.csdn.net/chummyhe89/article/details/7777613 占2个字节的:〇 占3个字节的:基本等同于GBK,含21000多个汉字 占4个字节 ...

  3. 10 harsh truths that will help you grow

    10 harsh truths that will help you grow帮你成长的10个残酷事实In the game of life, if it often seems like you’r ...

  4. 创业草堂之十:换位思考:假如你是VC

    前一回“创业草堂”的讲义是一份VC的Termsheet,这里面浓缩着VC投资关键性的理念. 今天来对Termsheet做些实质性的讲解.最有效的学习方法是创业者你亲自来扮演一回VC的角色,学习如何从V ...

  5. Intellij IDEA调试功能

    public class Demo { public static void f1() { System.out.println("one"); System.out.printl ...

  6. Buffer数据结构和new IO的Memory-mapped files

    一.Buffer类 java.nio.Buffer这个类是用来干什么的?有怎样的结构? "Core Java"中是这样定义的“A buffer is array of values ...

  7. YCM安装与配置

    1.重新编译vim 2.通过vundle安装YCM 3.安装CMake 4.下载预先编译好的llvm+clang 5.看官网的命令,生成CMake的编译文件并编译 配置YCM: 要额外配置ycm_ex ...

  8. python写的第一个简单小游戏-猜数字

    #Filename:game1.py guess=10 running=True while running: try: answer=int(raw_input('Guess what i thin ...

  9. Codeforces Round #243 (Div. 2) C. Sereja and Swaps(优先队列 暴力)

    题目 题意:求任意连续序列的最大值,这个连续序列可以和其他的 值交换k次,求最大值 思路:暴力枚举所有的连续序列.没做对是因为 首先没有认真读题,没看清交换,然后,以为是dp或者贪心 用了一下贪心,各 ...

  10. Android远程图片获取和本地缓存

    对于客户端——服务器端应用,从远程获取图片算是经常要用的一个功能,而图片资源往往会消耗比较大的流量,对 应用来说,如果处理不好这个问题,那会让用户很崩溃,不知不觉手机流量就用完了,等用户发现是你的应用 ...