如何使用viewpager与fragment与viewpager写一个app导航activity

| 漏洞检测 |
| 隐藏捆绑 |
Android ViewPager和Fragment实现顶部导航界面滑动效果(2)
5Fragment适配器FragmentAdapter,继承于FragmentPagerAdapter package com.example.import java.util.ArrayLimport java.util.Limport android.support.v4.app.Fimport android.sup
5&Fragment适配器FragmentAdapter,继承于FragmentPagerAdapter
package com.example.
import java.util.ArrayL
import java.util.L
import android.support.v4.app.F
import android.support.v4.app.FragmentM
import android.support.v4.app.FragmentPagerA
public class FragmentAdapter extends FragmentPagerAdapter {
List fragmentList = new ArrayList();
public FragmentAdapter(FragmentManager fm,List fragmentList) {
super(fm);
this.fragmentList = fragmentL
public Fragment getItem(int position) {
return fragmentList.get(position);
public int getCount() {
return fragmentList.size();
6&Fragment显示函数ChatFragment.java,ContactsFragment.java,FriendFragment.java(只给出一个,其他类似)
package com.example.
import android.os.B
import android.support.v4.app.F
import android.view.LayoutI
import android.view.V
import android.view.ViewG
public class ChatFragment extends Fragment {
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){
super.onCreateView(inflater, container, savedInstanceState);
View chatView = inflater.inflate(R.layout.activity_tab_chat, container,false);
return chatV
public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
(责任编辑:幽灵学院)
------分隔线----------------------------
场长挪用千万公款赴(澳门赌博网站) 坚信小赌怡情,大赌伤身 中国江西网讯 王倩、记...
最近携程开源了一套动态加载的框架,总的来说,该框架和OpenAtlas还是有一定的相似之...
apktool 反编译APK 使用apktool d ,默认会生成和APK文件名同名的文件夹,里面会存放反...
话说一个乞丐在看一个程序员写程序,程序员遇到一个问题怎么都解决不了,这时乞丐说这...
本节引言: 最近一段时间因为工作上的事以及面试等等,耽误了博客的更新,这里道歉下~...
美团的下拉刷新分为三个状态: 第一个状态为下拉刷新状态(pull to refresh),在这个状...
admin@1744.cc
工作日:9:00-21:00
周 六:9:00-18:00
&&扫一扫关注幽灵学院
广告服务:QQ:如何使用viewpager与fragment写一个app导航activity_百度知道
如何使用viewpager与fragment写一个app导航activity
提问者采纳
size()很简单,只要为你的ViewPager加一个适配器就好了; } @Override public Fragment getItem(int arg0) {
}}我这个是通用 的; fragments) {
super(fm).fragments = fragments,你只要给上Fragment就OK了; public CommonFragmentPagerAdapter(FragmentM
this,比如public class CommonFragmentPagerAdapter extends FragmentPagerAdapter { private List&Fragment&Fragment&gt, int position) {
} @Override public int getCount() {
return fragments, position); } @Override public Object instantiateItem(ViewGroup container.instantiateItem(container,
List&lt.get(arg0)
其他类似问题
为您推荐:
其他1条回答
就这么写呀
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Android&使用Activity+viewPager+fragment结构可能会遇到的异常
10-07 16:06:43.598: E/AndroidRuntime(277):
java.lang.RuntimeException: Unable to pause activity
{com.test.viewpager/com.test.viewpager.ViewPagerTestActivity}:
java.lang.NullPointerException
10-07 16:06:43.598: E/AndroidRuntime(277):
android.app.ActivityThread.performPauseActivity(ActivityThread.java:3348)
10-07 16:06:43.598: E/AndroidRuntime(277):
android.app.ActivityThread.performPauseActivity(ActivityThread.java:3305)
10-07 16:06:43.598: E/AndroidRuntime(277):
android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3288)
10-07 16:06:43.598: E/AndroidRuntime(277):
android.app.ActivityThread.access$2500(ActivityThread.java:125)
10-07 16:06:43.598: E/AndroidRuntime(277):
android.app.ActivityThread$H.handleMessage(ActivityThread.java:2040)
10-07 16:06:43.598: E/AndroidRuntime(277):
android.os.Handler.dispatchMessage(Handler.java:99)
10-07 16:06:43.598: E/AndroidRuntime(277):
android.os.Looper.loop(Looper.java:123)
10-07 16:06:43.598: E/AndroidRuntime(277):
android.app.ActivityThread.main(ActivityThread.java:4627)
10-07 16:06:43.598: E/AndroidRuntime(277):
java.lang.reflect.Method.invokeNative(Native Method)
10-07 16:06:43.598: E/AndroidRuntime(277):
java.lang.reflect.Method.invoke(Method.java:521)
10-07 16:06:43.598: E/AndroidRuntime(277):
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-07 16:06:43.598: E/AndroidRuntime(277):
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-07 16:06:43.598: E/AndroidRuntime(277):
dalvik.system.NativeStart.main(Native Method)
10-07 16:06:43.598: E/AndroidRuntime(277): Caused by:
java.lang.NullPointerException
10-07 16:06:43.598: E/AndroidRuntime(277):
android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1576)
10-07 16:06:43.598: E/AndroidRuntime(277):
android.support.v4.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1617)
10-07 16:06:43.598: E/AndroidRuntime(277):
android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:481)
10-07 16:06:43.598: E/AndroidRuntime(277):
android.app.Activity.performSaveInstanceState(Activity.java:1036)
10-07 16:06:43.598: E/AndroidRuntime(277):
android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1180)
10-07 16:06:43.598: E/AndroidRuntime(277):
android.app.ActivityThread.performPauseActivity(ActivityThread.java:3330)
10-07 16:06:43.598: E/AndroidRuntime(277):
&&& ... 12
问题出现在Fragment中。
原来是Fragment中加载的View中,每个view控件必须制定Id
否则就会出现上诉异常,为什么会这样,小弟暂时还没有弄清楚,只要为各个view设置Id即可。
为了更清楚的描述问题,现写了两个demo,一个是会产异常的,一个是不会产生异常的,请大家查看。下载请。
如果朋友你知道为什么Fragment必须为View设置Id的原因,请无比留言,谢谢!
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果
作者:fanrunqi0612
字体:[ ] 类型:转载 时间:
BottomBar是Github上的一个开源框架,本文给大家介绍Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果,非常不错,具有参考借鉴价值,感兴趣的朋友一起看下吧
  BottomBar是Github上的一个开源框架,因为从1.3.3开始不支持fragments了,要自己配置,弄了很久,不管是app的fragment还是V4 的程序总是总是闪退。于是就用这种方式实现了,效果还不错。github有详细说明,多余的就不说了。
  这个roughike是这个项目的所有者(大神致敬)。
  我用的是Android studio开发,fragment全部导的V4的包(以为最开始就支持的是v4的,后面也支持了app.fragment).
首先是dependencies
compile 'com.jakewharton:butterknife:7.0.0'
compile 'com.roughike:bottom-bar:1.3.3'
添加第二个就行了,我这用到了butterknife(不知道的可以百度,出自jakewharton大神的一款View注入框架)。
从menu添加items
res/menu/bottombar_menu.xml
&?xml version="1.0" encoding="utf-8"?&
&menu xmlns:android="/apk/res/android"&
android:id="@+id/bb_menu_recents"
android:icon="@drawable/ic_recents"
android:title="Recents" /&
android:id="@+id/bb_menu_favorites"
android:icon="@drawable/ic_favorites"
android:title="Favorites" /&
android:id="@+id/bb_menu_nearby"
android:icon="@drawable/ic_nearby"
android:title="Nearby" /&
android:id="@+id/bb_menu_friends"
android:icon="@drawable/ic_friends"
android:title="Friends" /&
android:id="@+id/bb_menu_food"
android:icon="@drawable/ic_restaurants"
android:title="Food" /&
在activity中初始化BottomBar和ViewPager
public class MainActivity extends FragmentActivity {
@Bind(R.id.viewPager)
ViewPager viewP
@Bind(R.id.myCoordinator)
CoordinatorLayout myC
private BottomBar mBottomB
private List&Fragment& fragmentL
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
initViewPager();
createBottomBar(savedInstanceState);
private void createBottomBar(Bundle savedInstanceState) {
mBottomBar = BottomBar.attachShy(myCoordinator,viewPager, savedInstanceState);
mBottomBar.setItemsFromMenu(R.menu.bottombar_menu, new OnMenuTabClickListener() {
public void onMenuTabSelected(@IdRes int menuItemId) {
switch (menuItemId) {
case R.id.bb_menu_recents:
viewPager.setCurrentItem(0);
case R.id.bb_menu_favorites:
viewPager.setCurrentItem(1);
case R.id.bb_menu_nearby:
case R.id.bb_menu_friends:
case R.id.bb_menu_food:
public void onMenuTabReSelected(@IdRes int menuItemId) {
// Setting colors for different tabs when there's more than three of them.
// You can set colors for tabs in three different ways as shown below.
mBottomBar.mapColorForTab(0, ContextCompat.getColor(this, R.color.colorAccent));
mBottomBar.mapColorForTab(1, 0xFF5D4037);
mBottomBar.mapColorForTab(2, "#7B1FA2");
mBottomBar.mapColorForTab(3, "#FF5252");
mBottomBar.mapColorForTab(4, "#FF9800");
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// Necessary to restore the BottomBar's state, otherwise we would
// lose the current tab on orientation change.
mBottomBar.onSaveInstanceState(outState);
private void initViewPager() {
fragmentList = new ArrayList&&();
fragmentList.add(new FragmentOne());
fragmentList.add(new FragmentTwo());
viewPager.setAdapter(new FragmentStatePagerAdapter(getSupportFragmentManager()) {
public Fragment getItem(int position) {
return fragmentList.get(position);
public int getCount() {
return fragmentList.size();
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
public void onPageSelected(int position) {
mBottomBar.selectTabAtPosition(position, true);
public void onPageScrollStateChanged(int state) {
  BottomBar的github上提供了两种初始化方式,这里是第二种实现下滑隐藏,因为是fragment滚动所以fragment的布局要被NestedScrollView包裹(下面贴代码,很简单的),同时注意viewPager.setOnPageChangeListener已经过时了。
layout/activity_main.xml
&?xml version="1.0" encoding="utf-8"?&
&android.support.design.widget.CoordinatorLayout xmlns:android="/apk/res/android"
android:id="@+id/myCoordinator"
xmlns:tools="/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.example.bottombar.bottombar.MainActivity"&
&android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"/&
&/android.support.design.widget.CoordinatorLayout&
FragmentOne.Java
public class FragmentOne extends Fragment {
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
v = inflater.inflate(R.layout.fragment_one, container,false);
context = getActivity();
layout/fragment_one.xml
&?xml version="1.0" encoding="utf-8"?&
&android.support.v4.widget.NestedScrollView
android:id="@+id/myScrollView"
xmlns:android="/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
&RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="20dp"&
android:layout_centerInParent="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/baiduInfo"/&
&/RelativeLayout&
&/android.support.v4.widget.NestedScrollView&
以上所述是小编给大家介绍的Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具activity怎么给viewpager中的fragment传递值?
我按照您方法,我做出了左右滑动切换fragment,但是我现在想给其中的fragment传递activity里面获取的值。因为我的多个fragment是同一个myfragment实例化后动态加载到fragment list里。用bundle出现异常:Android报错ViewPager: Can't Change Tag of Fragment
现在才来确定。。。
写下你的评论...
写下你的评论...
我也是同样的问题啊
,兄弟你有没有解决啊
,解决了求告知一下啊。
写下你的评论...
写下你的评论...
Copyright (C)
All Rights Reserved | 京ICP备 号-2

我要回帖

更多关于 viewpager放fragment 的文章

 

随机推荐