`

android ViewPager和FragmentPagerAdapter结合使用

 
阅读更多
左右移动ViewPager时加载不同的Fragment
package com.example.mainframework03;

import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.widget.ImageButton;
import android.widget.LinearLayout;

public class MainActivity extends FragmentActivity {

	private ViewPager mViewPager;
	private FragmentPagerAdapter mAdapter;
	private List<Fragment> mFragments = new ArrayList<Fragment>();

	/**
	 * 底部四个按钮
	 */
	private LinearLayout mTabBtnWeixin;
	private LinearLayout mTabBtnFrd;
	private LinearLayout mTabBtnAddress;
	private LinearLayout mTabBtnSettings;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		mViewPager = (ViewPager) findViewById(R.id.id_viewpager);
		// 初始化底部按钮 并构造Fragment集合
		initView();
		// 初始化FragmentPagerAdapter
		mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
			@Override
			public int getCount() {
				return mFragments.size();
			}
			@Override
			public Fragment getItem(int arg0) {
				return mFragments.get(arg0);
			}
		};

		mViewPager.setAdapter(mAdapter);
		
		mViewPager.setOnPageChangeListener(new OnPageChangeListener() {

			private int currentIndex;

			@Override
			public void onPageSelected(int position) {
				// 重置底部按钮状态
				resetTabBtn();
				// 设置对应按钮为按着状态
				switch (position) {
				case 0:
					((ImageButton) mTabBtnWeixin
							.findViewById(R.id.btn_tab_bottom_weixin))
							.setImageResource(R.drawable.tab_weixin_pressed);
					break;
				case 1:
					((ImageButton) mTabBtnFrd
							.findViewById(R.id.btn_tab_bottom_friend))
							.setImageResource(R.drawable.tab_find_frd_pressed);
					break;
				case 2:
					((ImageButton) mTabBtnAddress
							.findViewById(R.id.btn_tab_bottom_contact))
							.setImageResource(R.drawable.tab_address_pressed);
					break;
				case 3:
					((ImageButton) mTabBtnSettings
							.findViewById(R.id.btn_tab_bottom_setting))
							.setImageResource(R.drawable.tab_settings_pressed);
					break;
				}
				currentIndex = position;
			}

			@Override
			public void onPageScrolled(int arg0, float arg1, int arg2) {
			}

			@Override
			public void onPageScrollStateChanged(int arg0) {
			}
		});

	}

	protected void resetTabBtn() {
		((ImageButton) mTabBtnWeixin.findViewById(R.id.btn_tab_bottom_weixin))
				.setImageResource(R.drawable.tab_weixin_normal);
		((ImageButton) mTabBtnFrd.findViewById(R.id.btn_tab_bottom_friend))
				.setImageResource(R.drawable.tab_find_frd_normal);
		((ImageButton) mTabBtnAddress.findViewById(R.id.btn_tab_bottom_contact))
				.setImageResource(R.drawable.tab_address_normal);
		((ImageButton) mTabBtnSettings
				.findViewById(R.id.btn_tab_bottom_setting))
				.setImageResource(R.drawable.tab_settings_normal);
	}

	private void initView() {

		mTabBtnWeixin = (LinearLayout) findViewById(R.id.id_tab_bottom_weixin);
		mTabBtnFrd = (LinearLayout) findViewById(R.id.id_tab_bottom_friend);
		mTabBtnAddress = (LinearLayout) findViewById(R.id.id_tab_bottom_contact);
		mTabBtnSettings = (LinearLayout) findViewById(R.id.id_tab_bottom_setting);

		MainTab01 tab01 = new MainTab01();
		MainTab02 tab02 = new MainTab02();
		MainTab03 tab03 = new MainTab03();
		MainTab04 tab04 = new MainTab04();
		mFragments.add(tab01);
		mFragments.add(tab02);
		mFragments.add(tab03);
		mFragments.add(tab04);
	}
}










分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    ViewPager+FragmentPagerAdapter实现Tab

    `ViewPager` 和 `FragmentPagerAdapter` 是Android SDK提供的两个关键组件,可以联合使用来实现这种功能。本知识点将详细讲解如何利用这两个组件来创建一个Tab布局。 `ViewPager` 是Android中的一个视图容器,它...

    Android ViewPager和Fragment 实现滑动切换页面

    在Android应用开发中,`ViewPager`和`Fragment`是两个重要的组件,它们常被结合使用以实现用户界面的滑动切换效果。`ViewPager`提供了一个可以左右滑动查看多个页面的容器,而`Fragment`则作为Activity的部分内容,...

    Android ViewPager的简单使用

    若想与TabLayout结合使用,创建TabLayout并设置ViewPager: ```java TabLayout tabLayout = findViewById(R.id.tab_layout); tabLayout.setupWithViewPager(viewPager); // 可以在创建PagerAdapter时为每个...

    ViewPager + FragmentPagerAdapter

    在Android开发中,`ViewPager` 和 `FragmentPagerAdapter` 是两个重要的组件,它们常用于实现页面滑动的效果,比如常见的TabLayout或应用内的相册浏览。`ViewPager` 是一个可以水平滑动视图容器,而 `...

    Android ViewPager使用详解

    **Android ViewPager 使用详解...总之,Android的ViewPager是一个强大且灵活的组件,通过恰当的配置和使用,我们可以创建出功能丰富的滑动界面。在实际项目中,结合源码分析和最佳实践,可以提高应用的性能和用户体验。

    Android ViewPager 小示例

    在这个“Android ViewPager小示例”中,我们将深入探讨ViewPager的基本用法、功能以及如何与其他组件结合使用,以实现更丰富的交互体验。 首先,ViewPager是Android Support Library的一部分,它支持API 11及以上...

    Android应用源码之Android ViewPager Fragment实现选项卡.zip

    通常,ViewPager会结合PagerAdapter或FragmentPagerAdapter一起使用,以填充和管理各个页面内容。 在这个源码中,ViewPager与Fragment的结合是关键。Fragment是Android中的一个模块化组件,它可以包含UI元素,也...

    viewpager+fragment切换页面

    在Android开发中,`ViewPager`和`Fragment`的结合使用是一种常见的页面切换方式,尤其适用于创建滑动浏览的多页布局。本教程将详细介绍如何利用`ViewPager`和`Fragment`来实现在移动应用中平滑地切换不同页面。 ...

    android Viewpager 动态加载

    - ViewPager通常配合PagerAdapter或FragmentPagerAdapter使用,这两个适配器负责为ViewPager提供页面内容。 - 在创建PagerAdapter时,需要重写`instantiateItem()`和`destroyItem()`方法,分别用于创建和销毁页面...

    ViewPager与Fragment结合的简单使用

    总之,ViewPager与Fragment的结合使用是Android开发中常用的一种布局模式,它可以创建出富有交互性的多页应用界面。通过适配器管理Fragment,结合TabLayout提供导航指示,我们可以轻松地构建出用户友好的界面。同时...

    Android ViewPager实现圆点导航左右滑动和Fragment页面切换

    在这个示例中,我们结合`ViewPager`、`Fragment`、`PagerAdapter` 和 `OnPageChangeListener` 来创建一个带有圆点导航的左右滑动界面。下面我们将详细探讨这些知识点。 1. **ViewPager**: `ViewPager` 是Android ...

    Android ViewpagerDemo

    `ViewPager` 可以与数据绑定库(如 `Data Binding` 或 `LiveData`)结合使用,动态更新页面内容。在 `ViewPagerDemo` 中,你可能看到如何将数据模型与页面视图进行关联。 ### 7. 无限循环效果 通过适配器的特殊...

    安卓Android源码——ViewPager和Tabhost结合,可滑动的tabhost.rar

    这个压缩包"安卓Android源码——ViewPager和Tabhost结合,可滑动的tabhost.rar"提供了将两者结合使用的示例代码,帮助开发者创建一个可以滑动的`TabHost`,增强用户体验。 `ViewPager` 是Android SDK中的一个强大...

    Android ViewPager实例代码介绍2。

    总的来说,ViewPager与Fragment的结合使用,使得在Android应用中实现滑动切换页面和管理页面内容变得更加便捷。通过上述步骤,我们可以创建一个具有内容和标题的多页面视图,同时保持良好的性能和用户体验。对于...

    Android viewpager+listview例子

    在Android开发中,`ViewPager`和`ListView`是两种非常重要的组件,它们分别用于实现页面滑动...通过学习和实践这个例子,开发者不仅可以掌握如何使用`ViewPager`和`ListView`,还能深入理解Android应用的性能优化技巧。

    Android ViewPager例子

    本教程将深入探讨Android中的ViewPager及其使用方式,结合具体的Java代码实例——ButtonMenuDemo,来帮助开发者更好地理解和运用这个功能。 ViewPager最初在Android Support Library中引入,但现在已经成为AndroidX...

    ViewPager和Fragment结合使用的案例

    总之,ViewPager和Fragment的结合使用为Android应用提供了强大的页面切换和界面组织能力,允许开发者创建功能丰富的、响应式的多页应用。在实际开发中,可以根据具体需求调整PagerAdapter的实现,如缓存策略、页面预...

    android Viewpager+Fragment滑动页面

    `ViewPager`和`Fragment`的结合使用为Android开发者提供了强大的页面切换和管理能力。通过合理地配置适配器和滑动效果,可以创建出各种丰富的用户界面,提高用户体验。同时,注意内存管理和性能优化,避免在`...

    android viewpager android-support-v4.jar

    **ViewPager与Fragment结合使用:** ViewPager通常与Fragment一起使用,因为Fragment可以单独管理其生命周期,这在处理复杂布局和数据时非常有用。每个Fragment在ViewPager中代表一个独立的页面。通过PagerAdapter...

    Android Viewpager+GirdView结合类似Launcher

    在这个特定的场景中,我们将`ViewPager`和`GridView`结合使用,构建一个类似手机桌面启动器(Launcher)的应用,让用户能够通过滑动页面浏览多个网格视图。 首先,`ViewPager`是Android Support Library提供的一种...

Global site tag (gtag.js) - Google Analytics