Android Fragment 学习<2> 滑动TAb导航(无ActionBar)
2014-06-26 11:00
363 查看
在主布局中定义ActionBar,首先在menifest配置文件中
android:theme="@android:style/Theme.Light.NoTitleBar"
在布局中定义tab textview,然后再代码中绑定click监听。然后定义一个Viewpage滑动fragment。
public class MainActivityextends FragmentActivity {
private ViewPagervp;
private TextViewmTabOne;
private TextViewmTabTwo;
private ArrayList<Fragment>mFragmentList;
@Override
protectedvoid onCreate(Bundle bundle) {
//
TODO Auto-generated method stub
super.onCreate(bundle);
setContentView(R.layout.main_layout);
vp = (ViewPager) findViewById(R.id.fragment_viewpage);
vp.setOnPageChangeListener(new MyViewPageChangeListener());
mFragmentList =new ArrayList<Fragment>();
mFragmentList.add(new FragmentRed());
mFragmentList.add(new FragmentBlue());
MyFragmentAdapter mfa =
new MyFragmentAdapter(getSupportFragmentManager(),
mFragmentList);
vp.setAdapter(mfa);
mTabOne = (TextView) findViewById(R.id.tab_one);
mTabTwo = (TextView) findViewById(R.id.tab_two);
mTabOne.setOnClickListener(new MyOnClickListener(0));
mTabTwo.setOnClickListener(new MyOnClickListener(1));
}
privateint
tabFocus = 0;
private
class MyOnClickListener implements OnClickListener{
privateint
focus = 0;
public MyOnClickListener(int flag){
this.focus = flag;
}
@Override
public
void onClick(View v) {
if(focus == 0){
vp.setCurrentItem(0);
}
else
if(focus == 1){
vp.setCurrentItem(1);
}
}
}
private
class MyFragmentAdapter extends FragmentPagerAdapter{
private ArrayList<Fragment>list;
public MyFragmentAdapter(FragmentManager fm,ArrayList<Fragment> list) {
super(fm);
this.list = list;
}
@Override
public Fragment getItem(int arg0) {
//
TODO Auto-generated method stub
return
list.get(arg0);
}
@Override
public
int getCount() {
//
TODO Auto-generated method stub
return
list.size();
}
}
private
class MyViewPageChangeListener implements OnPageChangeListener{
@Override
public
void onPageScrollStateChanged(int arg0) {
//
TODO Auto-generated method stub
}
@Override
public
void onPageScrolled(int arg0,
float arg1, int arg2) {
//
TODO Auto-generated method stub
}
@Override
public
void onPageSelected(int arg0) {
switch (arg0) {
case 0:
if(tabFocus == 1){
mTabTwo.setTextColor(getResources().getColor(R.color.lightwhite));
}
mTabOne.setTextColor(getResources().getColor(R.color.white));
break;
case 1:
if(tabFocus == 0){
mTabOne.setTextColor(getResources().getColor(R.color.lightwhite));
}
mTabTwo.setTextColor(getResources().getColor(R.color.white));
break;
default:
break;
}
tabFocus = arg0;
}
}
}
android:theme="@android:style/Theme.Light.NoTitleBar"
在布局中定义tab textview,然后再代码中绑定click监听。然后定义一个Viewpage滑动fragment。
public class MainActivityextends FragmentActivity {
private ViewPagervp;
private TextViewmTabOne;
private TextViewmTabTwo;
private ArrayList<Fragment>mFragmentList;
@Override
protectedvoid onCreate(Bundle bundle) {
//
TODO Auto-generated method stub
super.onCreate(bundle);
setContentView(R.layout.main_layout);
vp = (ViewPager) findViewById(R.id.fragment_viewpage);
vp.setOnPageChangeListener(new MyViewPageChangeListener());
mFragmentList =new ArrayList<Fragment>();
mFragmentList.add(new FragmentRed());
mFragmentList.add(new FragmentBlue());
MyFragmentAdapter mfa =
new MyFragmentAdapter(getSupportFragmentManager(),
mFragmentList);
vp.setAdapter(mfa);
mTabOne = (TextView) findViewById(R.id.tab_one);
mTabTwo = (TextView) findViewById(R.id.tab_two);
mTabOne.setOnClickListener(new MyOnClickListener(0));
mTabTwo.setOnClickListener(new MyOnClickListener(1));
}
privateint
tabFocus = 0;
private
class MyOnClickListener implements OnClickListener{
privateint
focus = 0;
public MyOnClickListener(int flag){
this.focus = flag;
}
@Override
public
void onClick(View v) {
if(focus == 0){
vp.setCurrentItem(0);
}
else
if(focus == 1){
vp.setCurrentItem(1);
}
}
}
private
class MyFragmentAdapter extends FragmentPagerAdapter{
private ArrayList<Fragment>list;
public MyFragmentAdapter(FragmentManager fm,ArrayList<Fragment> list) {
super(fm);
this.list = list;
}
@Override
public Fragment getItem(int arg0) {
//
TODO Auto-generated method stub
return
list.get(arg0);
}
@Override
public
int getCount() {
//
TODO Auto-generated method stub
return
list.size();
}
}
private
class MyViewPageChangeListener implements OnPageChangeListener{
@Override
public
void onPageScrollStateChanged(int arg0) {
//
TODO Auto-generated method stub
}
@Override
public
void onPageScrolled(int arg0,
float arg1, int arg2) {
//
TODO Auto-generated method stub
}
@Override
public
void onPageSelected(int arg0) {
switch (arg0) {
case 0:
if(tabFocus == 1){
mTabTwo.setTextColor(getResources().getColor(R.color.lightwhite));
}
mTabOne.setTextColor(getResources().getColor(R.color.white));
break;
case 1:
if(tabFocus == 0){
mTabOne.setTextColor(getResources().getColor(R.color.lightwhite));
}
mTabTwo.setTextColor(getResources().getColor(R.color.white));
break;
default:
break;
}
tabFocus = arg0;
}
}
}
相关文章推荐
- Android Fragment 学习<2> 滑动TAb导航(ActionBar)
- Android实战简易教程<三十四>(基于ViewPager和FragmentPagerAdapter实现滑动通用Tab)
- Android知识点<2> Fragment 相关知识
- Android 学习意外第五季<2>——google GPS定位由经纬度转换地址信息
- Android学习0906<十一>(ViewPager,fragment碎片)
- Android Fragment 学习<1>
- 从零开始学android<SeekBar滑动组件.二十二.>
- Android开源中国客户端学习 微博分享模块 <8>
- Android NDK学习 <三> Android.mk实例和NDK实用技巧
- <转> Android开发者应该深入学习的10个开源应用项目
- Android WIFI功能开发<2>对WIfi的操作
- Android 学习意外第五季<1>——gps定位经纬度查询地址信息
- C++学习笔记之对文件的操作<2>
- 从零開始学android<SeekBar滑动组件.二十二.>
- 3G之Android学习第三章节<<HelloWorld应用程序分析>>
- 3G之Android学习第一章节<<开发环境搭建>>
- Android NDK学习 <三> Android.mk实例和NDK实用技巧
- Android学习之Bluetooth开发总结<续2>
- Android NDK学习 <二> Android.mk的制作
- 3G之Android学习第二章节<<开发第一个HelloWorld应用程序>>