Android FragmentActivity+viewpager的使用
使用场景,打算设计一个“底部菜单栏+其余可滑动的页面”的简单的功能。
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的使用的更多相关文章
- Android中ViewPager实现滑动条及与Fragment结合的实例教程
ViewPager类主要被用来实现可滑动的视图功能,这里我们就来共同学习Android中ViewPager实现滑动条及与Fragment结合的实例教程,需要的朋友可以参考下 自主实现滑动指示条先上一个 ...
- Android中viewPager的一两点使用
Android中viewPager的一两点使用 viewPager是谷歌官方提供的一种方便实现页面滑动效果的控件,可以直接使用也可以和fragment联合使用.这里只简单说下直接使用. 使用viewP ...
- Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案
转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878本文出自[DylanAndroid的博客] Android中Vie ...
- android之ViewPager
在android中ViewPager是非常常用的控件.它在android.support.v4.view.ViewPager下.你们自己可以进http://developer.android.com/ ...
- Android listview viewpager解决冲突 滑动
Android listview viewpager滑动 跳动 冲突解决 ListView中嵌套ViewPage有或者滑动手势冲突解决 在listview 上使用 addHeaderView 在第 ...
- Android 使用ViewPager实现左右循环滑动图片
ViewPager这个小demo实现的是可以左右循环滑动图片,下面带索引,滑到最后一页在往右滑动就要第一页,第一页往左滑动就到最后一页,先上效果图,用美女图片是我一贯的作风,呵呵 1. 首先看一 ...
- android使用ViewPager实现欢迎引导页
android使用ViewPager实现欢迎引导页 大多数APP第一次启动的时候,都会有一个引导界面,左右滑动,到最后一张,用户点击才再次进入主界面.当第二次启动的时候,则直接进入主界面. 这种效果一 ...
- android下ViewPager的使用,带下部选项栏的切换动画
(文章针对类似我这种初学者,大神看到不要嘲笑) 演示 我的规矩是先上GIF动画效果(Linux下用转的GIF,清晰度还可以但是不知道为什么放博客上,界面会这么大): 代码: android中有View ...
- Android FragmentActivity 嵌套 Fragment 调用startActivityForResult返回的requestCode错误
Android FragmentActivity 嵌套 Fragment 调用startActivityForResult返回的requestCode错误 此时,要在调用startActivityFo ...
随机推荐
- BZOJ 1982 Moving Pebbles
首先我们假设只有两堆, 容易发现当且仅当两堆相等时,先手必败 否则先手必胜 然后我们猜测一下原因: ->当两堆相等时,无论先手怎么做,后手总能使两堆相等,且必败态为0,0 推广一下: 当所有的石 ...
- [hackerrank]John and GCD list
https://www.hackerrank.com/contests/w8/challenges/john-and-gcd-list 简单题,GCD和LCM. #include <vector ...
- sql语句面试总结
1.用一条SQL语句 查询出每门课都大于80分的学生姓名 name kecheng fenshu 张三 语文 81张三 数学 75李四 语文 ...
- RunAsAdmin in windows 8
function RunAsAdmin(hWnd: HWND; filename: string; Parameters: string): Boolean; { See Step 3: Redesi ...
- Android:改变Activity切换方式
overridePendingTransition(enterAnim, exitAnim); Intent intent =new Intent(this,item2.class); startAc ...
- ubuntu 折腾之路
aptitude search :search for the lib...and their realtions. apt-get install :install the app apt-get ...
- 纯后台生成highcharts图片有哪些方法?
比如说,领导抛给你一个需求,把一些数据做成图表,每天通过邮件发送,让领导能在邮件中就看到图片,你会有什么思路呢?本人使用的是phantomjs这个神器,它的内核是WebKit引擎,不提供图形界面,只能 ...
- 转TerreyLee AJAX入门系列2——ScriptManager的理解总结
ScriptManager的功能之一就是处理页面上局部更新,对于这点,我想大家都知道.但是他工作的原理到底是什么呢,这个暂且不从正面来回答. 我们这样想一下,目前能够真正实现局部刷新的就是js+xml ...
- QTP不能打开或者新建FunctionLibrary的解决方法
今天打开QTP,然后打开function library的时候,qtp窗口右下角一直都是open...状态,怀疑是qtp与其他的软件冲突了. 解决方法: 直接执行QTP安装程序,然后选择修复QTP,问 ...
- 在Ubuntu上为Android系统编写Linux内核驱动程序(老罗学习笔记1)
这里,我们不会为真实的硬件设备编写内核驱动程序.为了方便描述为Android系统编写内核驱动程序的过程,我们使用一个虚拟的硬件设备,这个设备只有一个4字节的寄存器,它可读可写.想起我们第一次学习程序语 ...