小孩子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 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题
    • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
    • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
    • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
    • ¥50 成都蓉城足球俱乐部小程序抢票
    • ¥15 yolov7训练自己的数据集
    • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
    • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
    • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)