Fragment跳转时会黑屏的问题

处理Fragments跳转时会黑屏的问题,

Fragment跳转时会黑屏的问题

onCreate()中加代码
        getWindow().setFormat(PixelFormat.TRANSLUCENT);//处理有地图的Fragment第一次切换时 会黑屏闪一下的问题。

跳转时加代码

  fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); //去掉切换Fragment时闪动的动画效果

 

 

 

 

package com.szyc.carbodyguard.activitys;

import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Context;
import android.content.Intent;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.szyc.carbodyguard.bean.FirstEvent;
import com.szyc.carbodyguard.bean.VehicleInfoBean;
import com.szyc.carbodyguard.fragment.RealTimeTrackingFragment;
import com.szyc.carbodyguard.fragment.TrackPlayBackFragment;
import com.szyc.carbodyguard.fragment.VehicleInformationFragment;
import com.szyc.silenteagle.R;
import com.szyc.silenteagle.activitys.BaseActivity;

import de.greenrobot.event.EventBus;


/**
 * 项目名称:SilentEagle
 * 类描述:车辆信息,实时追踪,轨迹播放页面
 * 创建人:wangheping
 * 创建时间:2016/7/20 17:17
 * 修改人:Administrator
 * 修改时间:2016/7/20 17:17
 * 修改备注:
 */
public class VehicleRelatedActivity extends BaseActivity {
    private Context mContext=this;
    private RelativeLayout mBack;//后退
    private TextView mTitleName;//标题
    private TextView mClxx;//车辆信息
    private TextView mSszz;//实时追踪
    private TextView mGjhf;//轨迹回放
    private VehicleInformationFragment mVehicleInformationFragment;//车辆信息
    private RealTimeTrackingFragment mRealTimeTrackingFragment;//实时追踪
    private TrackPlayBackFragment mTrackPlayBackFragment;//轨迹回放
    private int v_id;//车辆id
    private VehicleInfoBean.vehcTrackList mObject;
    private String mplate = "";
    private String mplates = "";
    private int currentmenu;//当前选项

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.vehicle_related_activity);
        getWindow().setFormat(PixelFormat.TRANSLUCENT);//处理有地图的Fragment第一次切换时 会黑屏闪一下的问题。renhaijun add
        EventBus.getDefault().register(this);
        initView();
        bind();
        setOnclickListener();
        switchMenu(1);
    }

    private void initView() {
        //后退按钮
        mBack = (RelativeLayout) findViewById(R.id.topTitle_leftRl);
        //标题
        mTitleName = (TextView) findViewById(R.id.topTitle_middleTv);
        //车辆信息
        mClxx = (TextView) findViewById(R.id.clxx);
        //实时追踪
        mSszz = (TextView) findViewById(R.id.sszz);
        //轨迹回放
        mGjhf = (TextView) findViewById(R.id.gjhf);
    }


    private void bind() {
        Intent intent = getIntent();
        v_id = intent.getIntExtra("v_id", 0);
        mplate = intent.getStringExtra("v_plate");
    }

    /**
     * 设置click 事件监听
     */
    private void setOnclickListener() {
        mBack.setOnClickListener(mOnClickListener);//后退按钮
        mClxx.setOnClickListener(mOnClickListener);//车辆信息
        mSszz.setOnClickListener(mOnClickListener);//实时追踪
        mGjhf.setOnClickListener(mOnClickListener);//轨迹回放
    }

    View.OnClickListener mOnClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.topTitle_leftRl://后退
                    finish();
                    break;
                case R.id.clxx:
                    switchMenu(1);
                    break;
                case R.id.sszz:
                    switchMenu(2);
                    break;
                case R.id.gjhf:
                    switchMenu(3);
                    break;
            }
        }
    };

    private void switchMenu(int menu) {
        if (menu==currentmenu)
            return;
        //每次切换都先设置默认字体颜色和icon
        setDefalutMenu();
        //获取fragment控制器
        FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); //去掉切换Fragment时闪动的动画效果
        //每个Fragment传递车辆id
        Bundle bundle = new Bundle();
        bundle.putInt("v_id", v_id);
        bundle.putString("V_PLATES", mplate);
        switch (menu) {
            case 1:
                mTitleName.setText(R.string.clxx);
                mClxx.setBackgroundResource(R.color.textColor_30B3F3);
                mVehicleInformationFragment = new VehicleInformationFragment();
                mVehicleInformationFragment.setArguments(bundle);
                fragmentTransaction.replace(R.id.vehicle_related_fragment, mVehicleInformationFragment);
                fragmentTransaction.commit();
                break;
            case 2:
                mTitleName.setText(R.string.sszz);
                mSszz.setBackgroundResource(R.color.textColor_30B3F3);
                mRealTimeTrackingFragment = new RealTimeTrackingFragment();
                mRealTimeTrackingFragment.setArguments(bundle);
                fragmentTransaction.replace(R.id.vehicle_related_fragment, mRealTimeTrackingFragment);
                fragmentTransaction.commit();
                break;
            case 3:
                mTitleName.setText(R.string.gjhf);
                mGjhf.setBackgroundResource(R.color.textColor_30B3F3);
                mTrackPlayBackFragment = new TrackPlayBackFragment();
                if (!TextUtils.isEmpty(mplates)) {
                    bundle.putString("V_PLATES", mplates);//车牌
                    bundle.putString("VT_STARTTIME", mObject.getVT_STARTTIME());//开始时间
                    bundle.putString("VT_ENDTIME", mObject.getVT_ENDTIME());//结束时间
                }
                mTrackPlayBackFragment.setArguments(bundle);
                fragmentTransaction.replace(R.id.vehicle_related_fragment, mTrackPlayBackFragment);
                fragmentTransaction.commit();
                break;
        }
        currentmenu=menu;
    }

    /**
     * 设置顶部menu默认icon和颜色
     */
    private void setDefalutMenu() {
        mClxx.setBackgroundResource(R.color.textColor_96a2a8);
        mSszz.setBackgroundResource(R.color.textColor_96a2a8);
        mGjhf.setBackgroundResource(R.color.textColor_96a2a8);
    }

    public void onEventMainThread(FirstEvent event) {
        if (event.getMsg().equals("intent_trackplay")) {
            mObject = event.getObject();
            mplates = event.getPlate();
            switchMenu(3);
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        EventBus.getDefault().unregister(this);//注销EventBus
    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yayayaiii

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值