使用viewpager,fragment底栏导航,新的fragment替换旧的fragment

问题描述

使用viewpager,fragment底栏导航,新的fragment替换旧的fragment

主activity
public class MyActivity extends FragmentActivity {

private ViewPager mViewPager;
private IconTabPageIndicator mIndicator;
List<BaseFragment> fragments;
Button LoginButton;
LayoutInflater inflater;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Bmob.initialize(this, "d77a8e1ebfd8e187cbc814145918626d");
    //requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_my);

    mViewPager = (ViewPager) findViewById(R.id.view_pager);
    mIndicator = (IconTabPageIndicator) findViewById(R.id.indicator);
    fragments =new ArrayList<BaseFragment>();

    BaseFragment planFragment = new BaseFragment();
    planFragment.setTitle("计划");
    planFragment.setIconId(R.drawable.tab_plan_selector);

    //BaseFragment writeFragment = new BaseFragment();
    Fragment01 writeFragment=new Fragment01();
    writeFragment.setTitle("记账");
    writeFragment.setIconId(R.drawable.tab_write_selector);

    Fragment02 recordFragment = new Fragment02();
    recordFragment.setTitle("账单");
    recordFragment.setIconId(R.drawable.tab_record_selector);

    Fragment03 userFragment = new Fragment03();
    userFragment.setTitle("用户");
    userFragment.setIconId(R.drawable.tab_user_selector);

    fragments.add(writeFragment);
    fragments.add(planFragment);
    fragments.add(recordFragment);
    fragments.add(userFragment);

    FragmentAdapter adapter = new FragmentAdapter(fragments,getSupportFragmentManager());

    mViewPager.setAdapter(adapter);
    mIndicator.setViewPager(mViewPager);
}

**fragment03.java**
fragment03中有一个button,下面是onclick消息,在点击按钮是怎样把fragment03加载成新的fragment???
class MyButton implements View.OnClickListener {
    public void onClick(View v){
        edit_username = (EditText)view.findViewById(R.id.userNameText) ;
        edit_password = (EditText)view.findViewById(R.id.passwdText) ;
        string_username = edit_username.getText().toString();//登录账号
        string_password = edit_password.getText().toString();//登录密码

                    //云验证
        BmobQuery<login> bmobQuery= new BmobQuery<login>();;
        bmobQuery.addWhereEqualTo("username",string_username);
        bmobQuery.addWhereEqualTo("password",string_password);

        bmobQuery.findObjects(getActivity(), new FindListener<login>() {
            @Override
            public void onSuccess(List<login> list) {
                for (login gameScore : list) {
                    //获得playerName的信息
                    gameScore.getUsername();
                    gameScore.getPassword();
                    //Toast.makeText(getActivity(),gameScore.getUsername()+gameScore.getPassword(), Toast.LENGTH_SHORT).show();
                   //切换fragment   出错???
                    Fragment newFragment = new Fragment01();
                    FragmentTransaction transaction =getFragmentManager().beginTransaction();
                    transaction.replace(R.id.view_pager,newFragment);
                    transaction.commit();
                }

            }
            public void onError(int i, String s) {
               Toast.makeText(getActivity(), "登录失败 ", Toast.LENGTH_SHORT).show();
                //Log.v("test","登录失败");
            }
        });

    }
}

    用viewpager加fragment实现了底栏切换fragment,在某个fragment怎样重新加载fragment,某个fragment是登录功能,登录成功要加载用户信息,也就是新的fragment。怎么实现?在onCreateView中?

    ![图片说明](http://img.ask.csdn.net/upload/201604/15/1460718920_546782.png)

解决方案

使用FragmentManager,具体的话看这篇文章http://blog.csdn.net/lmj623565791/article/details/37970961
讲的非常的详细

解决方案二:

使用TabHost+Fragment实现导航

解决方案三:

尽量用hide而不是replace

时间: 2024-09-30 20:03:52

使用viewpager,fragment底栏导航,新的fragment替换旧的fragment的相关文章

TextView+Fragment实现底部导航栏

前言:项目第二版刚上线没多久,产品又对需求进行了大改动,以前用的是左滑菜单,现在又要换成底部导航栏,于是今天又苦逼加班了.花了几个小时实现了一个底部导航栏的demo,然后总结一下.写一篇博客.供自己以后参考.也可以给没有做过的朋友进行参考.以后大家有类似的功能就可以在我的demo上就行修改. 一.先上效果图:   本来是打算用FragmentTabHost实现的,但是中间那个按钮有点麻烦,想到我们项目好几个产品经理,并且经常改需求,于是最后决定  用 TextView+Fragment去实现. 

Android程序开发之Fragment实现底部导航栏实例代码_Android

流行的应用的导航一般分为两种,一种是底部导航,一种是侧边栏. 说明 IDE:AS,Android studio; 模拟器:genymotion; 实现的效果,见下图. 具体实现 为了讲明白这个实现过程,我们贴出来的代码多一写,这样更方便理解 [最后还会放出完整的代码实现] .看上图的界面做的比较粗糙,但实现过程的骨架都具有了,想要更完美的设计,之后自行完善吧 ^0^. 布局 通过观察上述效果图,发现任意一个选项页面都有三部分组成: 顶部去除ActionBar后的标题栏: 中间一个Fragment

Android程序开发之Fragment实现底部导航栏实例代码

流行的应用的导航一般分为两种,一种是底部导航,一种是侧边栏. 说明 IDE:AS,Android studio; 模拟器:genymotion; 实现的效果,见下图. 具体实现 为了讲明白这个实现过程,我们贴出来的代码多一写,这样更方便理解 [最后还会放出完整的代码实现] .看上图的界面做的比较粗糙,但实现过程的骨架都具有了,想要更完美的设计,之后自行完善吧 ^0^. 布局 通过观察上述效果图,发现任意一个选项页面都有三部分组成: 顶部去除ActionBar后的标题栏: 中间一个Fragment

android-安卓使用侧滑栏导航多个界面

问题描述 安卓使用侧滑栏导航多个界面 在侧滑栏中总不可能对每个按钮的点击事件都设置成打开一个新的活动吧?看到有些软件的实现是在侧滑栏中可以控制主页面的显示的,怎么做到的 解决方案 这跟点击界面上一个按钮变换界面又有什么不一样呢? 解决方案二: 可以使用Fragment进行Fragment间的通讯

Android 中 TabHost与ViewPager结合实现首页导航效果_Android

今天发的是TabHost结合ViewPager实现首页底部导航的效果,虽然说网上有很多这样的Demo,不过呢,我还是要把自己练习写的发出来,没错!就是这么任性: 先上效果图,如下: 代码里面有注释,就不过多解释了,说几点需要注意的问题 1:TabHost .TabWidget.FrameLayout一定添加id这个属性,否则会报错 android:id="@android:id/tabhost" android:id="@android:id/tabcontent"

用托管代码调用Windows 7任务栏的新功能

准备 Windows 7 Beta已经公开发布了的,可从http://www.microsoft.com/windows/windows-7/beta- download.aspx下载.W7在任务栏上做了很大的改进,关于任务栏的新特性可以看一下 http://blogs.msdn.com/e7/archive/2008/11/20/happy-anniversary-windows-on-the-evolution-of- the-taskbar.aspx.如果要对Windows 7进行开发最好

轻量级jQuery带底栏轮播(焦点图)插件slideBox

<!doctype html> <html> <head> <meta charset="utf-8"> <title>jQuery图片轮播(焦点图)插件</title> <link href="css/jquery.slideBox.css" rel="stylesheet" type="text/css" /> <script src

android fragment-如何从fragment跳转到新的页面

问题描述 如何从fragment跳转到新的页面 继承fragment的Java文件中,点击按钮跳转到新的页面 解决方案 http://www.apkbus.com/android-243257-1-2.html?_dsign=78c8d65d

jQuery插件PageSlide实现左右侧栏导航菜单_jquery

jQuery左右侧栏导航菜单插件PageSlide,目前比较流行的导航菜单展现形式,特别是在手机端或者触屏页面,效果还是不错的,支持自定义展现的方向,菜单内容可自行定义,支持加载页面,或者模态的窗格中显示此页的隐藏的内容,推荐使用. 使用方法: 1.加载插件和jQuery <link rel="stylesheet" type="text/css" href="../jquery.pageslide.css" /> <scrip