From a29fcaf16f8c80fe6c7e836c78c7f1ae2b54ccdd Mon Sep 17 00:00:00 2001 From: wds Date: Tue, 3 Aug 2021 18:58:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BB=E5=AE=9D=E9=A1=B5=E9=9D=A2=E5=88=87?= =?UTF-8?q?=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../navinfo/outdoor/base/BaseFragment.java | 1 - .../outdoor/fragment/TreasureFragment.java | 592 ++++++++---------- 2 files changed, 261 insertions(+), 332 deletions(-) diff --git a/app/src/main/java/com/navinfo/outdoor/base/BaseFragment.java b/app/src/main/java/com/navinfo/outdoor/base/BaseFragment.java index 95efb2f..86593e3 100644 --- a/app/src/main/java/com/navinfo/outdoor/base/BaseFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/base/BaseFragment.java @@ -32,7 +32,6 @@ public abstract class BaseFragment extends Fragment implements FragmentBackHandl private AlertDialog alertDialog; public View mView; - protected FragmentManager supportFragmentManager; @Nullable diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java index 93d71ad..1286e89 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java @@ -25,6 +25,7 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; +import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import com.github.lazylibrary.util.DensityUtil; @@ -104,7 +105,6 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen private ImageView ivSubmit; private ImageView ivRefish; private SlidingUpPanelLayout sliding_layout; - private FragmentTransaction fragmentTransaction; private Marker markerPoi; private CheckBox cbFootType; private ImageView ivFilter; @@ -126,6 +126,15 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen private BitmapDescriptor bitmapDescriptor1, bitmapDescriptor2, bitmapDescriptor3, bitmapDescriptor4, bitmapDescriptor5; private Marker bigMarker; private Marker markerPile; + private PoiFragment poiFragment; + private PoiVideoFragment poiVideoFragment; + private RoadFragment roadFragment; + private ChargingStationFragment chargingStationFragment; + private OtherFragment otherFragment; + private FilterFragment filterFragment; + private ChargingPileFragment chargingPileFragment; + private FragmentManager supportFragmentManager; + private FragmentTransaction fragmentTransaction; public static TreasureFragment newInstance(Bundle bundle) { TreasureFragment fragment = new TreasureFragment(); @@ -246,25 +255,19 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen bundle.putSerializable("poiEntity", poiEntity); switch (poiEntity.getType()) { case 1: - PoiFragment poiFragment = PoiFragment.newInstance(bundle); - showSlidingFragment(poiFragment); + showSlidingFragment(1, bundle); break; case 2: - ChargingStationFragment chargingStationFragment = ChargingStationFragment.newInstance(bundle); - showSlidingFragment(chargingStationFragment); - + showSlidingFragment(4, bundle); break; case 3: - PoiVideoFragment poiVideoFragment = PoiVideoFragment.newInstance(bundle); - showSlidingFragment(poiVideoFragment); + showSlidingFragment(2, bundle); break; case 4: - RoadFragment roadFragment = RoadFragment.newInstance(bundle); - showSlidingFragment(roadFragment); + showSlidingFragment(3, bundle); break; case 5: - OtherFragment otherFragment = OtherFragment.newInstance(bundle); - showSlidingFragment(otherFragment); + showSlidingFragment(5, bundle); break; case 6: initMarker(poiEntity); @@ -352,138 +355,138 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen .cls(JobSearchBean.class) .params(httpParams) .getRequest(new Callback() { - @Override - public void onSuccess(JobSearchBean response, int id) { - dismissLoadingDialog(); - Log.d("TAG", "onSuccess: " + response.getBody().toString() + "sssssssssssss"); - for (int i = 0; i < removables.size(); i++) { - removables.get(i).remove(); - } - removables.clear(); - List list = response.getBody().getList(); - for (int i = 0; i < list.size(); i++) { - JobSearchBean.BodyBean.ListBean listBean = list.get(i); - String geo = list.get(i).getGeo(); - Log.d("TAG", "onSuccess: " + geo); - Geometry geometry = GeometryTools.createGeometry(geo); - LatLng latLng = null; - if (geometry.getGeometryType().equals("Point")) {//点 - latLng = GeometryTools.createLatLng(geo); - } else if (geometry.getGeometryType().equals("LineString")) {//线 - List latLineString = GeometryTools.getLatLngs(geo); - // 构造 PolylineOpitons - PolylineOptions polylineOptions = new PolylineOptions() - .addAll(latLineString) - // 折线设置圆形线头 - .lineCap(true) - // 折线的颜色为绿色 - .color(0xff00ff00) - // 折线宽度为5像素 - .width(5) - // 还可以添加描边颜色 - .borderColor(0xffff0000) - // 描边颜色的宽度,线宽还是 25 像素,不过填充的部分宽度为 `width` - 2 * `borderWidth` - .borderWidth(1); - // 绘制折线 - Polyline polyline = tencentMap.addPolyline(polylineOptions); - polyline.setZIndex(3); - removables.add(polyline); - if (latLineString != null && latLineString.size() > 0) { - latLng = latLineString.get(0); + @Override + public void onSuccess(JobSearchBean response, int id) { + dismissLoadingDialog(); + Log.d("TAG", "onSuccess: " + response.getBody().toString() + "sssssssssssss"); + for (int i = 0; i < removables.size(); i++) { + removables.get(i).remove(); } - } else if (geometry.getGeometryType().equals("Polygon")) {//面 - List latPolygon = GeometryTools.getLatLngs(geo); - Polygon polygon = tencentMap.addPolygon(new PolygonOptions(). - //连接封闭图形的点 - addAll(latPolygon). - //填充颜色为红色 - fillColor(Color.parseColor("#97E0E7EC")). - //边线颜色为黑色 - strokeColor(0xff000000). - //边线宽度15像素 - strokeWidth(5)); - polygon.setZIndex(1); - removables.add(polygon); - if (latPolygon != null && latPolygon.size() > 0) { - latLng = latPolygon.get(0); + removables.clear(); + List list = response.getBody().getList(); + for (int i = 0; i < list.size(); i++) { + JobSearchBean.BodyBean.ListBean listBean = list.get(i); + String geo = list.get(i).getGeo(); + Log.d("TAG", "onSuccess: " + geo); + Geometry geometry = GeometryTools.createGeometry(geo); + LatLng latLng = null; + if (geometry.getGeometryType().equals("Point")) {//点 + latLng = GeometryTools.createLatLng(geo); + } else if (geometry.getGeometryType().equals("LineString")) {//线 + List latLineString = GeometryTools.getLatLngs(geo); + // 构造 PolylineOpitons + PolylineOptions polylineOptions = new PolylineOptions() + .addAll(latLineString) + // 折线设置圆形线头 + .lineCap(true) + // 折线的颜色为绿色 + .color(0xff00ff00) + // 折线宽度为5像素 + .width(5) + // 还可以添加描边颜色 + .borderColor(0xffff0000) + // 描边颜色的宽度,线宽还是 25 像素,不过填充的部分宽度为 `width` - 2 * `borderWidth` + .borderWidth(1); + // 绘制折线 + Polyline polyline = tencentMap.addPolyline(polylineOptions); + polyline.setZIndex(3); + removables.add(polyline); + if (latLineString != null && latLineString.size() > 0) { + latLng = latLineString.get(0); + } + } else if (geometry.getGeometryType().equals("Polygon")) {//面 + List latPolygon = GeometryTools.getLatLngs(geo); + Polygon polygon = tencentMap.addPolygon(new PolygonOptions(). + //连接封闭图形的点 + addAll(latPolygon). + //填充颜色为红色 + fillColor(Color.parseColor("#97E0E7EC")). + //边线颜色为黑色 + strokeColor(0xff000000). + //边线宽度15像素 + strokeWidth(5)); + polygon.setZIndex(1); + removables.add(polygon); + if (latPolygon != null && latPolygon.size() > 0) { + latLng = latPolygon.get(0); + } + } + switch (Integer.valueOf(list.get(i).getType())) { + case 1://poi + BitmapDescriptor poiDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_poi_bg1); + Marker poiMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(poiDescriptor).alpha(0.9f) + .flat(true) + .clockwise(false)); + poiMarker.setZIndex(2); + poiMarker.setTag(listBean); + removables.add(poiMarker); + poiMarker.setClickable(true); + break; + case 2://充电站 + BitmapDescriptor chargeDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_charge_bg1); + Marker stationMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(chargeDescriptor).alpha(0.9f) + .flat(true) + .clockwise(false)); + stationMarker.setTag(listBean); + removables.add(stationMarker); + stationMarker.setClickable(true); + stationMarker.setZIndex(2); + break; + case 3://poi录像 + BitmapDescriptor poiVideoDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_poi_video_bg1); + Marker poiVideoMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(poiVideoDescriptor).alpha(0.9f) + .flat(true) + .clockwise(false)); + poiVideoMarker.setTag(listBean); + removables.add(poiVideoMarker); + poiVideoMarker.setClickable(true); + poiVideoMarker.setZIndex(2); + break; + case 4://道路录像 + BitmapDescriptor roadDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_road_bg); + Marker roadMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(roadDescriptor).alpha(0.9f) + .flat(true) + .clockwise(false)); + roadMarker.setTag(listBean); + removables.add(roadMarker); + roadMarker.setClickable(true); + roadMarker.setZIndex(2); + break; + case 5://其他 + BitmapDescriptor otherDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_other_bg1); + Marker otherMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(otherDescriptor).alpha(0.9f) + .flat(true) + .clockwise(false)); + otherMarker.setTag(listBean); + removables.add(otherMarker); + otherMarker.setClickable(true); + otherMarker.setZIndex(2); + break; + case 6://面状任务 + BitmapDescriptor Descriptor = BitmapDescriptorFactory.fromResource(R.drawable.poi_video_bg); + Marker planarMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(Descriptor).alpha(0.9f) + .flat(true) + .clockwise(false)); + Log.d("面状任务", "onSuccess: " + planarMarker); + planarMarker.setTag(listBean); + removables.add(planarMarker); + planarMarker.setClickable(true); + planarMarker.setZIndex(2); + break; + } } + Message obtain = Message.obtain(); + obtain.what = Constant.JOB_SEARCH_WORD; + obtain.obj = response; + EventBus.getDefault().post(obtain); } - switch (Integer.valueOf(list.get(i).getType())) { - case 1://poi - BitmapDescriptor poiDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_poi_bg1); - Marker poiMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(poiDescriptor).alpha(0.9f) - .flat(true) - .clockwise(false)); - poiMarker.setZIndex(2); - poiMarker.setTag(listBean); - removables.add(poiMarker); - poiMarker.setClickable(true); - break; - case 2://充电站 - BitmapDescriptor chargeDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_charge_bg1); - Marker stationMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(chargeDescriptor).alpha(0.9f) - .flat(true) - .clockwise(false)); - stationMarker.setTag(listBean); - removables.add(stationMarker); - stationMarker.setClickable(true); - stationMarker.setZIndex(2); - break; - case 3://poi录像 - BitmapDescriptor poiVideoDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_poi_video_bg1); - Marker poiVideoMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(poiVideoDescriptor).alpha(0.9f) - .flat(true) - .clockwise(false)); - poiVideoMarker.setTag(listBean); - removables.add(poiVideoMarker); - poiVideoMarker.setClickable(true); - poiVideoMarker.setZIndex(2); - break; - case 4://道路录像 - BitmapDescriptor roadDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_road_bg); - Marker roadMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(roadDescriptor).alpha(0.9f) - .flat(true) - .clockwise(false)); - roadMarker.setTag(listBean); - removables.add(roadMarker); - roadMarker.setClickable(true); - roadMarker.setZIndex(2); - break; - case 5://其他 - BitmapDescriptor otherDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_other_bg1); - Marker otherMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(otherDescriptor).alpha(0.9f) - .flat(true) - .clockwise(false)); - otherMarker.setTag(listBean); - removables.add(otherMarker); - otherMarker.setClickable(true); - otherMarker.setZIndex(2); - break; - case 6://面状任务 - BitmapDescriptor Descriptor = BitmapDescriptorFactory.fromResource(R.drawable.poi_video_bg); - Marker planarMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(Descriptor).alpha(0.9f) - .flat(true) - .clockwise(false)); - Log.d("面状任务", "onSuccess: " + planarMarker); - planarMarker.setTag(listBean); - removables.add(planarMarker); - planarMarker.setClickable(true); - planarMarker.setZIndex(2); - break; - } - } - Message obtain = Message.obtain(); - obtain.what = Constant.JOB_SEARCH_WORD; - obtain.obj = response; - EventBus.getDefault().post(obtain); - } - @Override - public void onError(Throwable e, int id) { - dismissLoadingDialog(); - Log.d("TAG", "onError: " + e.getMessage() + ""); - } - }); + @Override + public void onError(Throwable e, int id) { + dismissLoadingDialog(); + Log.d("TAG", "onError: " + e.getMessage() + ""); + } + }); /* OkGo.get(HttpInterface.TASK_LIST) @@ -667,7 +670,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen int taskStatus = Constant.TASK_STASTUS; int type = Constant.TASK_TYPE; int limit = Constant.LIMIT_TTPE; - if (taskStatus==0){ + if (taskStatus == 0) { Message obtain = Message.obtain(); obtain.what = Constant.JOB_SEARCH_POI_WORD; obtain.obj = null; @@ -835,8 +838,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen public boolean onClick(BaseDialog baseDialog, View v) { Bundle bundle = new Bundle(); bundle.putSerializable("poiEntity", poiEntity); - PoiFragment poiFragment = PoiFragment.newInstance(bundle); - showSlidingFragment(poiFragment); + showSlidingFragment(1, bundle); initRemovePoiSharePre(); return false; } @@ -849,8 +851,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen public boolean onClick(BaseDialog baseDialog, View v) { Bundle bundle = new Bundle(); bundle.putSerializable("poiEntity", poiEntity); - ChargingStationFragment chargingStationFragment = ChargingStationFragment.newInstance(bundle); - showSlidingFragment(chargingStationFragment); + showSlidingFragment(4, bundle); initRemovePoiSharePre(); return false; } @@ -863,8 +864,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen public boolean onClick(BaseDialog baseDialog, View v) { Bundle bundle = new Bundle(); bundle.putSerializable("poiEntity", poiEntity); - PoiVideoFragment poiVideoFragment = PoiVideoFragment.newInstance(bundle); - showSlidingFragment(poiVideoFragment); + showSlidingFragment(2, bundle); initRemovePoiSharePre(); return false; } @@ -877,8 +877,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen public boolean onClick(BaseDialog baseDialog, View v) { Bundle bundle = new Bundle(); bundle.putSerializable("poiEntity", poiEntity); - RoadFragment roadFragment = RoadFragment.newInstance(bundle); - showSlidingFragment(roadFragment); + showSlidingFragment(3, bundle); initRemovePoiSharePre(); return false; } @@ -892,8 +891,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen public boolean onClick(BaseDialog baseDialog, View v) { Bundle bundle = new Bundle(); bundle.putSerializable("poiEntity", poiEntity); - OtherFragment otherFragment = OtherFragment.newInstance(bundle); - showSlidingFragment(otherFragment); + showSlidingFragment(5, bundle); initRemovePoiSharePre(); return false; } @@ -953,30 +951,21 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen bundle.putSerializable("poiEntity", poiEntity); switch (poiEntity.getType()) { case 1: - PoiFragment poiFragment = PoiFragment.newInstance(bundle); - showSlidingFragment(poiFragment); + showSlidingFragment(1, bundle); break; case 2: - ChargingStationFragment chargingStationFragment = ChargingStationFragment.newInstance(bundle); - showSlidingFragment(chargingStationFragment); + showSlidingFragment(4, bundle); break; case 3: - PoiVideoFragment poiVideoFragment = PoiVideoFragment.newInstance(bundle); - showSlidingFragment(poiVideoFragment); + showSlidingFragment(2, bundle); break; case 4: - RoadFragment roadFragment = RoadFragment.newInstance(bundle); - showSlidingFragment(roadFragment); + showSlidingFragment(3, bundle); break; case 5: - OtherFragment otherFragment = OtherFragment.newInstance(bundle); - showSlidingFragment(otherFragment); + showSlidingFragment(5, bundle); break; } - frameLayout.setVisibility(View.GONE); - if (gatherGetFragment != null) { - fragmentTransaction.remove(gatherGetFragment); - } } else if (data.what == Constant.GATHER_GET_MAP) { //地图界面点击采集 点击开始采集 PoiEntity poiEntity = (PoiEntity) data.obj; Bundle bundle = new Bundle(); @@ -984,24 +973,19 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen bundle.putBoolean("isSliding", true); // 通知抽屉不收回 switch (poiEntity.getType()) { case 1: - PoiFragment poiFragment = PoiFragment.newInstance(bundle); - showSlidingFragment(poiFragment); + showSlidingFragment(1, bundle); break; case 2: - ChargingStationFragment chargingStationFragment = ChargingStationFragment.newInstance(bundle); - showSlidingFragment(chargingStationFragment); + showSlidingFragment(4, bundle); break; case 3: - PoiVideoFragment poiVideoFragment = PoiVideoFragment.newInstance(bundle); - showSlidingFragment(poiVideoFragment); + showSlidingFragment(2, bundle); break; case 4: - RoadFragment roadFragment = RoadFragment.newInstance(bundle); - showSlidingFragment(roadFragment); + showSlidingFragment(3, bundle); break; case 5: - OtherFragment otherFragment = OtherFragment.newInstance(bundle); - showSlidingFragment(otherFragment); + showSlidingFragment(5, bundle); break; } frameLayout.setVisibility(View.GONE); @@ -1054,7 +1038,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen setMainButtonVisiable((Integer) data.obj); } else if (data.what == Constant.MAIN_HEADER) {// 控制主界面各个header View view = (View) data.obj; - if (view!=null){ + if (view != null) { initHeader(view); } @@ -1084,16 +1068,14 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen BitmapDescriptor pileDescriptor = BitmapDescriptorFactory.fromResource(R.mipmap.datouzhen); LatLng mapCenterPoint = getMapCenterPoint(); markerPile = tencentMap.addMarker(new MarkerOptions(mapCenterPoint).icon(pileDescriptor)); - ChargingPileFragment chargingPileFragment = ChargingPileFragment.newInstance(bundle); - showSlidingFragment(chargingPileFragment); + showSlidingFragment(7, bundle); } else if (data.what == Constant.CHARGING_STATION_PILE) {//充电站的充电桩 chargingPileEntity = (ChargingPileEntity) data.obj; } else if (data.what == Constant.CHARGING_STATION_ITEM) {//充电站的item 跳转到充电桩 Bundle bundle = new Bundle(); bundle.putBoolean("isSliding", false); // 通知抽屉不收回 bundle.putSerializable("chargingPileEntity", (ChargingPileEntity) data.obj); - ChargingPileFragment chargingPileFragment = ChargingPileFragment.newInstance(bundle); - showSlidingFragment(chargingPileFragment); + showSlidingFragment(7, bundle); } else if (data.what == Constant.HOME_TREASURE) {//寻宝的刷新 if ((boolean) data.obj) { initList(Constant.currentLocation); @@ -1116,31 +1098,26 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen int type = data.arg1; showPoiMarkerByType(type, latLng); } else if (data.what == Constant.EVENT_WHAT_COMPLETE_TASK) { - // initRemoveFragment(); + // initRemoveFragment(); PoiEntity poiEntity = (PoiEntity) data.obj; Bundle bundle = new Bundle(); bundle.putBoolean("isSliding", true); // 通知抽屉不收回 bundle.putSerializable("poiEntity", poiEntity); - switch (poiEntity.getType()) { + switch (poiEntity.getType()) {//1 "POI"2 "充电站"3 "POI录像"4 "道路录像"5 "其他"6 "面状任务" case 1: - PoiFragment poiFragment = PoiFragment.newInstance(bundle); - showSlidingFragment(poiFragment); + showSlidingFragment(1, bundle); break; case 2: - ChargingStationFragment chargingStationFragment = ChargingStationFragment.newInstance(bundle); - showSlidingFragment(chargingStationFragment); + showSlidingFragment(4, bundle); break; case 3: - PoiVideoFragment poiVideoFragment = PoiVideoFragment.newInstance(bundle); - showSlidingFragment(poiVideoFragment); + showSlidingFragment(2, bundle); break; case 4: - RoadFragment roadFragment = RoadFragment.newInstance(bundle); - showSlidingFragment(roadFragment); + showSlidingFragment(3, bundle); break; case 5: - OtherFragment otherFragment = OtherFragment.newInstance(bundle); - showSlidingFragment(otherFragment); + showSlidingFragment(5, bundle); break; } frameLayout.setVisibility(View.GONE); @@ -1163,29 +1140,6 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen } } - private void initRemoveFragment() { - PoiFragment poiFragments = (PoiFragment) supportFragmentManager.findFragmentByTag(PoiFragment.class.getName()); - if (poiFragments != null) { - fragmentTransaction.remove(poiFragments); - } - ChargingStationFragment chargingStationFragment = (ChargingStationFragment) supportFragmentManager.findFragmentByTag(ChargingStationFragment.class.getName()); - if (chargingStationFragment != null) { - fragmentTransaction.remove(chargingStationFragment); - } - PoiVideoFragment poiVideoFragment = (PoiVideoFragment) supportFragmentManager.findFragmentByTag(PoiVideoFragment.class.getName()); - if (poiVideoFragment != null) { - fragmentTransaction.remove(poiVideoFragment); - } RoadFragment roadFragment = (RoadFragment) supportFragmentManager.findFragmentByTag(RoadFragment.class.getName()); - if (roadFragment != null) { - fragmentTransaction.remove(roadFragment); - } - OtherFragment otherFragment = (OtherFragment) supportFragmentManager.findFragmentByTag(OtherFragment.class.getName()); - if (otherFragment != null) { - fragmentTransaction.remove(otherFragment); - } - - } - /** * 控制主界面各个按钮的显示状态 @@ -1430,100 +1384,34 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen ToastUtil.showShort(getContext(), "无法获取当前位置,请检查GPS是否打开!"); return; } -// LatLng mapCenterPoint = getMapCenterPoint(); +// LatLng mapCenterPoint = getMapCenterPoint(); LatLng newPoiLatLng = new LatLng(Constant.currentLocation.getLatitude(), Constant.currentLocation.getLongitude()); poiEntity.setX(newPoiLatLng.getLongitude() + ""); poiEntity.setY(newPoiLatLng.getLatitude() + ""); + bundle.putSerializable("poiEntity", poiEntity); ShareDialog.show((AppCompatActivity) getActivity(), itemList, new ShareDialog.OnItemClickListener() { @Override public boolean onClick(ShareDialog shareDialog, int index, ShareDialog.Item item) { switch (index) { case 0: // POI - new Thread(new Runnable() { - @Override - public void run() { -// InsertAndUpdateUtils.getInstance().insertOrUpdate(getContext(), poiEntity); - bundle.putSerializable("poiEntity", poiEntity); - getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - showPoiMarkerByType(1, newPoiLatLng); - PoiFragment poiFragment = PoiFragment.newInstance(bundle); - showSlidingFragment(poiFragment); - } - }); - } - }).start(); + showPoiMarkerByType(1, newPoiLatLng); + showSlidingFragment(1, bundle); break; case 1: // POI录像 - new Thread(new Runnable() { - @Override - public void run() { - -// InsertAndUpdateUtils.getInstance().insertOrUpdate(getContext(), poiEntity); - bundle.putSerializable("poiEntity", poiEntity); - getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - showPoiMarkerByType(2, newPoiLatLng); - PoiVideoFragment poiVideoFragment = PoiVideoFragment.newInstance(bundle); - showSlidingFragment(poiVideoFragment); - } - }); - } - }).start(); - + showPoiMarkerByType(2, newPoiLatLng); + showSlidingFragment(2, bundle); break; case 2://道路录像 - new Thread(new Runnable() { - @Override - public void run() { -// InsertAndUpdateUtils.getInstance().insertOrUpdate(getContext(), poiEntity); - bundle.putSerializable("poiEntity", poiEntity); - getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - showPoiMarkerByType(3, newPoiLatLng); - RoadFragment roadFragment = RoadFragment.newInstance(bundle); - showSlidingFragment(roadFragment); - } - }); - } - }).start(); + showPoiMarkerByType(3, newPoiLatLng); + showSlidingFragment(3, bundle); break; case 3://充电站 - new Thread(new Runnable() { - @Override - public void run() { -// InsertAndUpdateUtils.getInstance().insertOrUpdate(getContext(), poiEntity); - bundle.putSerializable("poiEntity", poiEntity); - getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - showPoiMarkerByType(4, newPoiLatLng); - ChargingStationFragment chargingStationFragment = ChargingStationFragment.newInstance(bundle); - showSlidingFragment(chargingStationFragment); - } - }); - } - }).start(); + showPoiMarkerByType(4, newPoiLatLng); + showSlidingFragment(4, bundle); break; case 4://其他 - new Thread(new Runnable() { - @Override - public void run() { -// InsertAndUpdateUtils.getInstance().insertOrUpdate(getContext(), poiEntity); - bundle.putSerializable("poiEntity", poiEntity); - getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - showPoiMarkerByType(5, newPoiLatLng); - OtherFragment otherFragment = OtherFragment.newInstance(bundle); - showSlidingFragment(otherFragment); - } - }); - } - }).start(); + showPoiMarkerByType(5, newPoiLatLng); + showSlidingFragment(5, bundle); break; } return false; @@ -1533,9 +1421,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen case R.id.iv_filter: initThread(); initList(Constant.currentLocation); - FilterFragment filterFragment = FilterFragment.newInstance(new Bundle()); - showSlidingFragment(filterFragment); - + showSlidingFragment(6, new Bundle()); break; case R.id.iv_message: Intent messageIntent = new Intent(getContext(), FragmentManagement.class); @@ -1573,47 +1459,91 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen /** * 将fragment显示到抽屉内 */ - private void showSlidingFragment(BaseDrawerFragment fragment) { - fragmentTransaction = supportFragmentManager.beginTransaction(); + private void showSlidingFragment(int type, Bundle bundle) { + FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction(); int[] deviceInfo = DensityUtil.getDeviceInfo(getActivity()); sliding_layout.setPanelHeight(deviceInfo[1] / 2); sliding_layout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); - fragmentTransaction.add(R.id.scroll_view, fragment, fragment.getClass().getName()); - if (!(fragment instanceof FilterFragment)) { - FilterFragment filterFragment = (FilterFragment) supportFragmentManager.findFragmentByTag(FilterFragment.class.getName()); - if (filterFragment != null) { - fragmentTransaction.hide(filterFragment); - } + hideAllFragment(fragmentTransaction); + switch (type) { + case 1://poi: + if (poiFragment == null) { + poiFragment = PoiFragment.newInstance(bundle); + fragmentTransaction.add(R.id.scroll_view, poiFragment); + } else { + fragmentTransaction.show(poiFragment); + } + break; + case 2://poi录像 + if (poiVideoFragment == null) { + poiVideoFragment = PoiVideoFragment.newInstance(bundle); + fragmentTransaction.add(R.id.scroll_view, poiVideoFragment); + } else { + fragmentTransaction.show(poiVideoFragment); + } + break; + case 3://道路 + if (roadFragment == null) { + roadFragment = RoadFragment.newInstance(bundle); + fragmentTransaction.add(R.id.scroll_view, roadFragment); + } else { + fragmentTransaction.show(roadFragment); + } + break; + case 4://充电站 + if (chargingStationFragment == null) { + chargingStationFragment = ChargingStationFragment.newInstance(bundle); + fragmentTransaction.add(R.id.scroll_view, chargingStationFragment); + } else { + fragmentTransaction.show(chargingStationFragment); + } + break; + case 5://其他 + if (otherFragment == null) { + otherFragment = OtherFragment.newInstance(bundle); + fragmentTransaction.add(R.id.scroll_view, otherFragment); + } else { + fragmentTransaction.show(otherFragment); + } + break; + case 6://删选 + if (filterFragment == null) { + filterFragment = FilterFragment.newInstance(bundle); + fragmentTransaction.add(R.id.scroll_view, filterFragment); + } else { + fragmentTransaction.show(filterFragment); + } + break; + case 7: + if (chargingPileFragment == null) { + chargingPileFragment = ChargingPileFragment.newInstance(bundle); + fragmentTransaction.add(R.id.scroll_view, chargingPileFragment); + } else { + fragmentTransaction.show(chargingPileFragment); + } + break; + } + fragmentTransaction.commit(); + } + + private void hideAllFragment(FragmentTransaction fragmentTransaction) { + if (poiFragment != null) { + fragmentTransaction.hide(poiFragment); + } else if (poiVideoFragment != null) { + fragmentTransaction.hide(poiVideoFragment); + } else if (chargingStationFragment != null) { + fragmentTransaction.hide(chargingStationFragment); + } else if (roadFragment != null) { + fragmentTransaction.hide(roadFragment); + } else if (otherFragment != null) { + fragmentTransaction.hide(otherFragment); + } else if (filterFragment != null) { + fragmentTransaction.hide(filterFragment); + } else if (chargingPileFragment != null) { + fragmentTransaction.hide(chargingPileFragment); } - if (!(fragment instanceof ChargingStationFragment)) { - ChargingStationFragment chargingStationFragment = (ChargingStationFragment) supportFragmentManager.findFragmentByTag(ChargingStationFragment.class.getName()); - if (chargingStationFragment != null) { - fragmentTransaction.hide(chargingStationFragment); - } - } - if (!(fragment instanceof PoiFragment)) { - PoiFragment poiFragment = (PoiFragment) supportFragmentManager.findFragmentByTag(PoiFragment.class.getName()); - if (poiFragment != null) { - fragmentTransaction.hide(poiFragment); - } - } - if (!(fragment instanceof RoadFragment)) { - RoadFragment roadFragment = (RoadFragment) supportFragmentManager.findFragmentByTag(RoadFragment.class.getName()); - if (roadFragment != null) { - fragmentTransaction.hide(roadFragment); - } - } - if (!(fragment instanceof PoiVideoFragment)) { - PoiVideoFragment poiVideoFragment = (PoiVideoFragment) supportFragmentManager.findFragmentByTag(PoiVideoFragment.class.getName()); - if (poiVideoFragment != null) { - fragmentTransaction.hide(poiVideoFragment); - } - } - fragmentTransaction.show(fragment); - fragmentTransaction.addToBackStack(null); - fragmentTransaction.commit(); } /**