参考了Android Referencehttp://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html.
首先新建一个ViewPageActivity类继承FragmentActivity(android.support.v4.app.FragmentActivity而不是android.app.FragmentActivity)
对应的Layout文件viewpage_actxml:
每个单独的ListFragment对应的Layout文件:
首先新建一个ViewPageActivity类继承FragmentActivity(android.support.v4.app.FragmentActivity而不是android.app.FragmentActivity)
import android.content.Context; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.ListFragment; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; import com.ryan.test.R; public class ViewPageActivity extends FragmentActivity { private static String[] mStrings = { "tab1", "tab2", "tab3", "tab4" }; static final int NUM_ITEMS = 4; private static final String TAG = ViewPageActivity.class.getName(); private SectionsPagerAdapter pagerAdapter; private ViewPager viewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.viewpage_act); pagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); viewPager = (ViewPager) findViewById(R.id.view_pager); viewPager.setAdapter(pagerAdapter); Button button1 = (Button) findViewById(R.id.goto_one); button1.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { viewPager.setCurrentItem(0); } }); Button button2 = (Button) findViewById(R.id.goto_two); button2.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { viewPager.setCurrentItem(1); } }); Button button3 = (Button) findViewById(R.id.goto_three); button3.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { viewPager.setCurrentItem(2); } }); Button button4 = (Button) findViewById(R.id.goto_four); button4.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { viewPager.setCurrentItem(3); } }); } @Override public View onCreateView(String name, Context context, AttributeSet attrs) { return super.onCreateView(name, context, attrs); } public static class SectionsPagerAdapter extends FragmentPagerAdapter { public SectionsPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return ArrayListFragment.newInstance(position); } @Override public int getCount() { return NUM_ITEMS; } } public static class ArrayListFragment extends ListFragment { int mNum; static ArrayListFragment newInstance(int num) { ArrayListFragment f = new ArrayListFragment(); Bundle args = new Bundle(); args.putInt("num", num); f.setArguments(args); return f; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i(TAG, "Fragment" + mNum + ":onCreate"); mNum = getArguments() != null ? getArguments().getInt("num") : 1; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Log.i(TAG, "Fragment"+mNum+":onCreateView"); View v = inflater.inflate(R.layout.fragment_pager_list, container, false); View tv = v.findViewById(R.id.fpl_text); ((TextView) tv).setText("Fragment #" + mNum); return v; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Log.i(TAG, "Fragment"+mNum+":onActivityCreated"); setListAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, mStrings)); } @Override public void onListItemClick(ListView l, View v, int position, long id) { Log.i(TAG, "Item clicked:" + id); } } }
对应的Layout文件viewpage_actxml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal" android:orientation="vertical" android:padding="4dip" > <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="0px" android:layout_weight="1" > </android.support.v4.view.ViewPager> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0" android:gravity="center" android:measureWithLargestChild="true" android:orientation="horizontal" > <Button android:id="@+id/goto_one" android:layout_width="0px" android:layout_weight="1" android:layout_height="wrap_content" android:text="First" /> <Button android:id="@+id/goto_two" android:layout_width="0px" android:layout_weight="1" android:layout_height="wrap_content" android:text="Second" /> <Button android:id="@+id/goto_three" android:layout_width="0px" android:layout_weight="1" android:layout_height="wrap_content" android:text="Third" /> <Button android:id="@+id/goto_four" android:layout_width="0px" android:layout_weight="1" android:layout_height="wrap_content" android:text="Forth" /> </LinearLayout> </LinearLayout>
每个单独的ListFragment对应的Layout文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:drawable/gallery_thumb" android:orientation="vertical" > <TextView android:id="@+id/fpl_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical|center_horizontal" android:text="@string/hello_world" android:textAppearance="?android:attr/textAppearanceMedium" /> <FrameLayout android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="1" > <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:drawSelectorOnTop="false" /> <!-- Here is the view to show if the list is emtpy --> <TextView android:id="@android:id/empty" android:layout_width="match_parent" android:layout_height="match_parent" android:text="No items." android:textAppearance="?android:attr/textAppearanceMedium" /> </FrameLayout> </LinearLayout>
发表评论
-
Android下载功能的实现(参考Browser源码)
2014-05-23 16:55 01.实现DownloadHandler,为下载做准备。 ... -
Android中使用蓝牙
2013-10-15 16:43 6059原文地址:http://developer.and ... -
Sqlite3 基本指令(笔记)
2013-05-18 13:26 933.header ON|OFF设置是否显示数据表格的列名 .i ... -
Android 捕获App意外退出错误的日志信息
2013-05-08 17:57 36011.创建获取日志信息的类AppLogHandler,该类的 ... -
Android下Achartengine绘制折线图
2013-05-08 17:58 5654因开发需要,App中需要用到图表的绘制,参考了网上的文章和 ...
相关推荐
在Android应用开发中,"Tab+ViewPager+Fragment"是一种常见的实现导航的方式,它允许用户在多个页面间平滑切换,同时提供清晰的导航结构。这个技术组合的优势在于它能够高效地管理和展示大量的内容,同时也提供了...
总的来说,`android-Tab+Viewpage+Fragment实现导航源码`项目展示了如何利用Android的核心组件构建一个动态的、可交互的导航系统。通过理解并实践这些组件的使用,开发者可以创建出更加丰富和用户友好的应用程序。
在Android开发中,实现Tab...通过细心设计和优化,我们可以创建出和微信类似的滑动Tab效果,提高用户的操作便捷性。在实际项目中,你可能还需要根据业务需求进行调整和定制,比如添加自定义的指示器或者滑动指示器等。
`Fragment`代表了一个可以嵌入到Activity中的可重用UI模块,而`ViewPager`则用于在多个`Fragment`之间滑动切换,通常用于实现Tab切换的效果。以下将详细介绍如何使用这两者来实现Tab栏切换。 首先,了解`Fragment`...
在`ViewPager`中,我们可以用`Fragment`来创建每个可滑动的页面,这样既能保持代码的模块化,又能实现复杂的布局和交互。 要解决`ViewPager`和`Fragment`之间的滑动冲突,主要涉及到触摸事件的处理。通常,`...
Viewpager2是Android官方提供的一个用于展示可滑动页面的组件,而Fragment则用于在Activity中创建可复用的UI模块。本教程将深入讲解如何结合这两者来实现微信式的滑动界面效果。 首先,我们要了解Viewpager2的基本...
`TabHost`是Android SDK中用于创建多标签界面的组件,而`Fragment`和`ViewPager`则可以实现平滑的页面滑动效果。 首先,我们需要了解`TabHost`。`TabHost`是一个容器,它允许我们在同一个活动中展示多个`Tab`,每个...
使用ViewPage实现滑动效果,使用Fragment使每个page页面的逻辑分开处理,代码可读性更高。每个Fragment有自己生命周期可更好把握内存部分的处理。是个demo代码十分简单,可做入门使用。注释清晰。 开发环境:android...
在安卓开发中,构建一个可滑动切换的导航界面是常见的需求,这通常涉及到Tab布局、ViewPager和Fragment的结合使用。本压缩包“安卓Android源码——Tab+Viewpage+Fragment实现导航.zip”提供了一个这样的实现示例。...
在Android应用开发中,"Fragment + ViewPager" 是一种常见的实现多页面滑动切换的设计模式,尤其适用于构建具有底部导航栏的应用。本知识点将详细讲解如何使用Fragment和ViewPager来实现这样的界面设计。 首先,...
### 使用ViewPage与Fragment实现区域顶部Tab滑动切换 #### 一、背景介绍 在Android应用开发中,经常需要设计包含多个子页面的界面,并且这些子页面可以通过顶部的Tab进行快速切换。这种布局方式常见于新闻类App、...
在Android应用开发中,...在Android_ml_tab这个压缩包文件中,可能包含了实现上述功能的示例代码,包括`TabHost`的配置、`Fragment`的定义、`ViewPager`的使用等,你可以参考这些代码来进一步理解和实践这个知识点。
在Android开发中,创建一个类似微信的Tab布局,即Tab随着ViewPager的滑动而改变,是一种常见的需求。...通过合理的数据绑定和事件监听,我们可以轻松创建出与微信类似的滑动Tab效果,提升应用的用户体验。
这个"Tab+Viewpage+Fragment实现导航.rar"压缩包文件可能包含了一个示例项目,展示了如何在Android应用中集成这三个组件来构建一个功能完善的导航系统。以下是关于这个主题的详细知识点解释: 1. **TabLayout**: ...
在Android开发中,`ViewPager`和`Fragment`是构建动态、可滑动界面的常用工具。`ViewPager`允许用户左右滑动浏览多个页面,而`Fragment`则为应用程序提供了模块化视图,使得一个Activity可以包含多个独立的、可交互...
总之,Android的可滑动Tab页设计是一个综合了布局管理、组件交互、数据适配等多个方面的知识点,对于提升用户体验和优化应用导航至关重要。通过学习和实践,开发者可以熟练掌握这一技巧,并将其应用到自己的项目中。
在Android开发中,`ViewPager`是一个非常常用的组件,它允许用户通过左右滑动来浏览多个页面,通常用于实现Tab切换或者展示多个相似内容的页面。`Fragment`则是Android中的一个模块化组件,它可以独立于Activity存在...
在Android开发中,创建一个可滑动的Tab布局通常会涉及到`ViewPager`、`Fragment`以及`ActionBar`或`TabLayout`(对于Android Support Library或AndroidX)。`ViewPager`允许用户左右滑动来切换不同的页面,而`...
综上所述,这些知识点涵盖了Android开发中常见的界面交互元素和组件的使用,包括抽屉菜单、Fragment的管理和切换、标签页的实现以及列表数据的展示和加载。理解并掌握这些技术对于构建丰富的移动应用界面至关重要。
在Android开发中,`ViewPage` 和 `Fragment` 结合使用是实现滑动页面切换的常见方式。这种技术常用于创建如应用启动引导页、Tab布局或者内容丰富的滚动菜单等。下面将详细介绍`ViewPage`和`Fragment`的滑动效果以及...