tab界面实现方式之ViewPager+FragmentPager

这次的实现的目的其实跟viewpager+view实现的功能一样的,唯一不同的是:这里的viewpager加载的是Fragment。

其中xml代码与之前的完全一样,所以这里就不贴了。这里我只贴下MainActivity的代码

MainActivity代码

java代码

  1 package com.example.android_tab3;
  2
  3 import java.util.ArrayList;
  4 import java.util.List;
  5
  6 import com.example.Fragment.AddressFragment;
  7 import com.example.Fragment.FriendFragment;
  8 import com.example.Fragment.SettingFragment;
  9 import com.example.Fragment.WeixinFragment;
 10
 11 import android.os.Bundle;
 12 import android.support.v4.app.Fragment;
 13 import android.support.v4.app.FragmentActivity;
 14 import android.support.v4.app.FragmentPagerAdapter;
 15 import android.support.v4.view.ViewPager;
 16 import android.support.v4.view.ViewPager.OnPageChangeListener;
 17 import android.util.Log;
 18 import android.view.View;
 19 import android.view.View.OnClickListener;
 20 import android.view.Window;
 21 import android.widget.ImageButton;
 22 import android.widget.LinearLayout;
 23
 24 public class MainActivity extends FragmentActivity implements OnClickListener{
 25     private ViewPager viewpager = null;
 26     private List<Fragment> list = null;
 27     private FragmentPagerAdapter adapter = null;
 28     private ImageButton imagebutton_weixin = null;
 29     private ImageButton imagebutton_friend = null;
 30     private ImageButton imagebutton_address = null;
 31     private ImageButton imagebutton_setting = null;
 32
 33     private LinearLayout linear_weixin = null;
 34     private LinearLayout linear_friend = null;
 35     private LinearLayout linear_address = null;
 36     private LinearLayout linear_setting = null;
 37     protected void onCreate(Bundle savedInstanceState) {
 38         super.onCreate(savedInstanceState);
 39         requestWindowFeature(Window.FEATURE_NO_TITLE);
 40         setContentView(R.layout.activity_main);
 41         initview();
 42         initEvents();
 43     }
 44
 45     private void initview()
 46     {
 47         viewpager = (ViewPager) findViewById(R.id.viewpager);
 48
 49         imagebutton_weixin = (ImageButton) findViewById(R.id.imagebutton_weixin);
 50         imagebutton_friend = (ImageButton) findViewById(R.id.imagebutton_friend);
 51         imagebutton_address = (ImageButton) findViewById(R.id.imagebutton_address);
 52         imagebutton_setting = (ImageButton) findViewById(R.id.imagebutton_setting);
 53
 54         linear_weixin = (LinearLayout) findViewById(R.id.linear_weixin);
 55         linear_friend = (LinearLayout) findViewById(R.id.linear_friend);
 56         linear_address = (LinearLayout) findViewById(R.id.linear_address);
 57         linear_setting = (LinearLayout) findViewById(R.id.linear_setting);
 58         list = new ArrayList<Fragment>();
 59         Fragment weixinFragment = new WeixinFragment();
 60         Fragment friendFragment = new FriendFragment();
 61         Fragment addressFragment = new AddressFragment();
 62         Fragment settingFragment = new SettingFragment();
 63         list.add(weixinFragment);
 64         list.add(friendFragment);
 65         list.add(addressFragment);
 66         list.add(settingFragment);
 67         adapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
 68
 69             public int getCount() {
 70
 71                 return list.size();
 72             }
 73
 74             public Fragment getItem(int position) {
 75
 76                 return list.get(position);
 77             }
 78         };
 79         viewpager.setAdapter(adapter);
 80         viewpager.setOnPageChangeListener(new OnPageChangeListener() {
 81
 82             @Override
 83             public void onPageSelected(int position) {
 84                 viewpager.setCurrentItem(position);
 85                 resetimage();
 86                 if(position == 0)
 87                 {
 88                     imagebutton_weixin.setImageResource(R.drawable.tab_weixin_pressed);
 89                 }
 90                 else if(position == 1)
 91                 {
 92                     imagebutton_friend.setImageResource(R.drawable.tab_find_frd_pressed);
 93                 }
 94                 else if(position == 2)
 95                 {
 96                     imagebutton_address.setImageResource(R.drawable.tab_address_pressed);
 97                 }
 98                 else if (position == 3)
 99                 {
100                     imagebutton_setting.setImageResource(R.drawable.tab_settings_pressed);
101                 }
102             }
103
104             @Override
105             public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
106                 // TODO Auto-generated method stub
107
108             }
109
110             @Override
111             public void onPageScrollStateChanged(int state) {
112                 // TODO Auto-generated method stub
113
114             }
115         });
116     }
117     private void initEvents() {
118         linear_weixin.setOnClickListener(this);
119         Log.i("main", "2");
120         linear_friend.setOnClickListener(this);
121         linear_address.setOnClickListener(this);
122         linear_setting.setOnClickListener(this);
123     }
124     public void onClick(View v) {
125         resetimage();
126         switch(v.getId())
127         {
128             case R.id.linear_weixin:
129             {
130                 viewpager.setCurrentItem(0);
131                 imagebutton_weixin.setImageResource(R.drawable.tab_weixin_pressed);
132                 break;
133             }
134             case R.id.linear_friend:
135             {
136                 viewpager.setCurrentItem(1);
137                 imagebutton_friend.setImageResource(R.drawable.tab_find_frd_pressed);
138                 break;
139             }
140             case R.id.linear_address:
141             {
142                 viewpager.setCurrentItem(2);
143                 imagebutton_address.setImageResource(R.drawable.tab_address_pressed);
144                 break;
145             }
146             case R.id.linear_setting:
147             {
148                 viewpager.setCurrentItem(3);
149                 imagebutton_setting.setImageResource(R.drawable.tab_settings_pressed);
150                 break;
151             }
152         }
153     }
154     private void resetimage()
155     {
156         imagebutton_weixin.setImageResource(R.drawable.tab_weixin_normal);
157         imagebutton_friend.setImageResource(R.drawable.tab_find_frd_normal);
158         imagebutton_address.setImageResource(R.drawable.tab_address_normal);
159         imagebutton_setting.setImageResource(R.drawable.tab_settings_normal);
160     }
161 }
时间: 2024-10-07 06:26:00

tab界面实现方式之ViewPager+FragmentPager的相关文章

tab界面实现方式之viewpager+view

这里,我将说下使用viewpager加上view来实现tab界面.其实这个并不陌生,这个就是我们在学习最初的viewpager的时候,viewpager的使用方式. 基本思想就是:将多个xml布局文件转换为view对象,再加到Adapter上去. 其中实现xml文件往view对象的转换的两种方式: 1.LayoutInflate Lf = getLayoutInflate.from(this) View view = Lf.inflate(resource, root) 2.View view

tab界面实现方式之ViewPager+TabPageIndicator

今天我来说说ViewPager+tabPageIndicator来实现tab界面.首先tabPageIndicator是在第三方的library包里面-- viewPagerlibrary,在githup上可以下载,我们需要将它导入eclipse中,然后在关联它.当我们使用这个包的时候,有一个问题需要注意:可能主工程中会报错,但是我们又不知道是哪里错了,最好看看libs下的v4包,一定要保证主工程和library中的v4包要么一模一样,要么只有一个,所以要么将其中一个v4包用另一个v4覆盖,或者

tab界面实现方式之Fragment

相信大家都用过qq,关于qq的界面是怎么实现的呢?其实它的界面就是我们今天要说的--用Fragment来实现tab. 首先,我们来说说这个方式的优点: 1.减少MainActivity类中的代码,将代码分配给相应的Fragment类中 2.由于创建了多个Fragment来管理布局,因此后期维护更加容易,只需要更改相应的Fragment就行 3.在单个Fragment中可以实现更多的功能,想一想qq的向右滑动与向左滑动.如果是viewpager,则不能这些功能. 好,话不多说,直接贴代码 Main

【Android界面实现】使用ActionBar和DrawerLayout纯原生控件,实现侧滑栏和滑动Tab界面

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 在前面的文章中,我们使用第三方开源控件,比如说是SlidingMenu和PagerSlidingTabStrip,实现过侧滑栏和滑动Tab界面.但是在support-v4包中,提供了原生的侧滑栏控件DrawerLayout,而滑动的Tab效果,我们可以使用ViewPager和ActionBar上的Tab来进行实现.所以在今天的文章里面,我们将介绍如何将DrawerLayout与ActionBar进行整合,

【Android UI设计与开发】1.引导界面(一)ViewPager介绍和简单实现

1.ViewPager 实现效果图 2.ViewPager 实现功能 ViewPager类提供了多界面切换的新效果,新效果有如下特征: <1>当前显示一组界面中的其中一个界面: <2>当用户通过左右滑动界面时,当前的屏幕显示当前界面和下一个界面的一部分: <3>滑动结束后,界面自动跳转到当前选择的界面中. 3.ViewPager详细说明 android-support-v4.jar 是谷歌官方给我们提供的一个兼容低版本安卓设备的软件包,里面包囊了只有在安卓3.0以上可以

网络采集软件核心技术剖析系列(7)---如何使用C#语言搭建程序框架(经典Winform界面,顶部菜单栏,工具栏,左边树形列表,右边多Tab界面)

一 本系列随笔概览及产生的背景 自己开发的豆约翰博客备份专家软件工具问世3年多以来,深受广大博客写作和阅读爱好者的喜爱.同时也不乏一些技术爱好者咨询我,这个软件里面各种实用的功能是如何实现的. 该软件使用.NET技术开发,为回馈社区,现将该软件中用到的核心技术,开辟一个专栏,写一个系列文章,以飨广大技术爱好者. 本系列文章除了讲解网络采编发用到的各种重要技术之外,也提供了不少问题的解决思路和界面开发的编程经验,非常适合.NET开发的初级,中级读者,希望大家多多支持. 很多初学者常有此类困惑,“为

Android Tab大总结 Fragment+TabPageIndicator+ViewPager

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24740977 Android现在实现Tab类型的界面方式越来越多,今天就把常见的实现方式给大家来个总结.目前写了: 1.传统的ViewPager实现 2.FragmentManager+Fragment实现 3.ViewPager+FragmentPagerAdapter实现 4.TabPageIndicator+ViewPager+FragmentPagerAdapter 1

Android流行界面结构——Fragment通过ViewPager(带指示器)嵌套Fragment结构的创建方法详解

原创文章,转载请注明出处http://www.cnblogs.com/baipengzhan/p/6287213.html 当前Android流行界面结构的一种--Fragment通过ViewPager嵌套Fragment结构目前非常常用,在本篇文章中, 我们一步一步将其创建出来,非常详细的让大家看到这个界面是如何实现的,下面我们开始吧. 首先我们看一下最终的效果动画,以便大家有个最初的印象. 本文章专注于功能的实现,并没有着重于界面的美观,所以大家看到的效果一般,UI效果需要大家进一步修改.

TabLayout:另一种Tab的实现方式

尊重原创转载请注明:From AigeStudio(http://blog.csdn.net/aigestudio)Power by Aige 侵权必究! 炮兵 镇楼 在5.0以前我们想要实现像网易新闻客户端那样的的Tab可以有很多种选择: 比如古老的TabHost,3.0后ActionBar所提供的Tab,以及各种成熟的Tab开源控件等,都可以直接或间接地实现Tab的效果.然而,对于这样一种使用极多的控件,Android是不会放弃将它纳入麾下的打算的,于是乎在5.0后放出的design包中An