小孩子a 2014-03-04 08:44
浏览 1713

android sliding中的viewpage切换变白

写在最前:
如果有朋友可以帮忙解决这个问题,请在底下留言,或者私信我,或者联系我qq:1065885952,谢谢了哈!!~

功能描述:
用sliding实现侧滑。首页是viewpage,包含三个fragment选项卡,可滑动切换。左侧是listview菜单,点击对应的item,首页的fragment会切换。
问题再现:
1. 首次加载进来,首页viewpage显示正常。
2. 切换到左侧菜单,选择第二项。第二项显示正常。
3. 切换到左侧菜单,选择首页(带有viewpage)的fragment,viewpage变白。

sliding初始化代码如下:

private void initSliding(Bundle savedInstanceState) {
    getSlidingMenu().setMode(SlidingMenu.LEFT);
    getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
    getSlidingMenu().setShadowWidthRes(R.dimen.shadow_width);
    getSlidingMenu().setShadowDrawable(R.drawable.shadow);
    getSlidingMenu().setBehindOffsetRes(R.dimen.slidingmenu_offset);
    getSlidingMenu().setFadeDegree(0.35f);

    if (savedInstanceState != null) {
        mContent = getSupportFragmentManager().getFragment(
                savedInstanceState, "mContent");
    }
    if (mContent == null) {

        mContent = Fragment_Choose.newInstance();
    }

    // 设置主界面的视图
    setContentView(R.layout.frame_main_content);
    getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, mContent).commit();

    // 设置左边菜单打开后的视图界面
    setBehindContentView(R.layout.frame_left_content);
    getSupportFragmentManager().beginTransaction().replace(R.id.left_content_id, Fragment_LeftMenu.newInstance()).commit();

}

viewpage初始化代码如下:

public class BtmNaviSwitchAdapter extends FragmentPagerAdapter {
    private ArrayList<Fragment> mFragments;

    public BtmNaviSwitchAdapter(FragmentManager fm) {
        super(fm);
        mFragments = new ArrayList<Fragment>();
        mFragments.add(Fragment_Test.newInstance());
        mFragments.add(Fragment_Test.newInstance());
        mFragments.add(Fragment_Test.newInstance());
    }

    public BtmNaviSwitchAdapter(FragmentManager fm,
            ArrayList<Fragment> fragments) {
        super(fm);

    }

    @Override
    public int getCount() {
        return mFragments.size();
    }

    @Override
    public Fragment getItem(int position) {
        return mFragments.get(position);
    }

}

左侧菜单点击切换首页fragment代码如下:

mLeftListView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1,
                int position, long arg3) {
            String key = "";
            switch (position) {
            case 0:
                key = "home";
                break;
            case 1:
                key = "emergencies";
                break;

            default:

                break;
            }

            Activity_Home ma = (Activity_Home) getActivity();
            ma.switchContent(key);

        }
    });

public void switchContent(String key) {
    if (mContent.equals(mFragmentList.get(key))) {
        showMainContent();
        return;
    }
    mContent = mFragmentList.get(key);
    getSupportFragmentManager().beginTransaction()
            .replace(R.id.content_frame, mFragmentList.get(key)).commit();
    getSlidingMenu().showContent();
}
  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 求差集那个函数有问题,有无佬可以解决
    • ¥15 【提问】基于Invest的水源涵养
    • ¥20 微信网友居然可以通过vx号找到我绑的手机号
    • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
    • ¥15 解riccati方程组
    • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
    • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
    • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
    • ¥50 树莓派安卓APK系统签名
    • ¥65 汇编语言除法溢出问题