寻宝页面切换

This commit is contained in:
wds 2021-08-03 18:58:27 +08:00
parent eb90acb1c5
commit a29fcaf16f
2 changed files with 261 additions and 332 deletions

View File

@ -32,7 +32,6 @@ public abstract class BaseFragment extends Fragment implements FragmentBackHandl
private AlertDialog alertDialog; private AlertDialog alertDialog;
public View mView; public View mView;
protected FragmentManager supportFragmentManager;
@Nullable @Nullable

View File

@ -25,6 +25,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction; import androidx.fragment.app.FragmentTransaction;
import com.github.lazylibrary.util.DensityUtil; import com.github.lazylibrary.util.DensityUtil;
@ -104,7 +105,6 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
private ImageView ivSubmit; private ImageView ivSubmit;
private ImageView ivRefish; private ImageView ivRefish;
private SlidingUpPanelLayout sliding_layout; private SlidingUpPanelLayout sliding_layout;
private FragmentTransaction fragmentTransaction;
private Marker markerPoi; private Marker markerPoi;
private CheckBox cbFootType; private CheckBox cbFootType;
private ImageView ivFilter; private ImageView ivFilter;
@ -126,6 +126,15 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
private BitmapDescriptor bitmapDescriptor1, bitmapDescriptor2, bitmapDescriptor3, bitmapDescriptor4, bitmapDescriptor5; private BitmapDescriptor bitmapDescriptor1, bitmapDescriptor2, bitmapDescriptor3, bitmapDescriptor4, bitmapDescriptor5;
private Marker bigMarker; private Marker bigMarker;
private Marker markerPile; 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) { public static TreasureFragment newInstance(Bundle bundle) {
TreasureFragment fragment = new TreasureFragment(); TreasureFragment fragment = new TreasureFragment();
@ -246,25 +255,19 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
bundle.putSerializable("poiEntity", poiEntity); bundle.putSerializable("poiEntity", poiEntity);
switch (poiEntity.getType()) { switch (poiEntity.getType()) {
case 1: case 1:
PoiFragment poiFragment = PoiFragment.newInstance(bundle); showSlidingFragment(1, bundle);
showSlidingFragment(poiFragment);
break; break;
case 2: case 2:
ChargingStationFragment chargingStationFragment = ChargingStationFragment.newInstance(bundle); showSlidingFragment(4, bundle);
showSlidingFragment(chargingStationFragment);
break; break;
case 3: case 3:
PoiVideoFragment poiVideoFragment = PoiVideoFragment.newInstance(bundle); showSlidingFragment(2, bundle);
showSlidingFragment(poiVideoFragment);
break; break;
case 4: case 4:
RoadFragment roadFragment = RoadFragment.newInstance(bundle); showSlidingFragment(3, bundle);
showSlidingFragment(roadFragment);
break; break;
case 5: case 5:
OtherFragment otherFragment = OtherFragment.newInstance(bundle); showSlidingFragment(5, bundle);
showSlidingFragment(otherFragment);
break; break;
case 6: case 6:
initMarker(poiEntity); initMarker(poiEntity);
@ -352,138 +355,138 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
.cls(JobSearchBean.class) .cls(JobSearchBean.class)
.params(httpParams) .params(httpParams)
.getRequest(new Callback<JobSearchBean>() { .getRequest(new Callback<JobSearchBean>() {
@Override @Override
public void onSuccess(JobSearchBean response, int id) { public void onSuccess(JobSearchBean response, int id) {
dismissLoadingDialog(); dismissLoadingDialog();
Log.d("TAG", "onSuccess: " + response.getBody().toString() + "sssssssssssss"); Log.d("TAG", "onSuccess: " + response.getBody().toString() + "sssssssssssss");
for (int i = 0; i < removables.size(); i++) { for (int i = 0; i < removables.size(); i++) {
removables.get(i).remove(); removables.get(i).remove();
}
removables.clear();
List<JobSearchBean.BodyBean.ListBean> 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<LatLng> 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")) {// removables.clear();
List<LatLng> latPolygon = GeometryTools.getLatLngs(geo); List<JobSearchBean.BodyBean.ListBean> list = response.getBody().getList();
Polygon polygon = tencentMap.addPolygon(new PolygonOptions(). for (int i = 0; i < list.size(); i++) {
//连接封闭图形的点 JobSearchBean.BodyBean.ListBean listBean = list.get(i);
addAll(latPolygon). String geo = list.get(i).getGeo();
//填充颜色为红色 Log.d("TAG", "onSuccess: " + geo);
fillColor(Color.parseColor("#97E0E7EC")). Geometry geometry = GeometryTools.createGeometry(geo);
//边线颜色为黑色 LatLng latLng = null;
strokeColor(0xff000000). if (geometry.getGeometryType().equals("Point")) {//
//边线宽度15像素 latLng = GeometryTools.createLatLng(geo);
strokeWidth(5)); } else if (geometry.getGeometryType().equals("LineString")) {//线
polygon.setZIndex(1); List<LatLng> latLineString = GeometryTools.getLatLngs(geo);
removables.add(polygon); // 构造 PolylineOpitons
if (latPolygon != null && latPolygon.size() > 0) { PolylineOptions polylineOptions = new PolylineOptions()
latLng = latPolygon.get(0); .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<LatLng> 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 @Override
public void onError(Throwable e, int id) { public void onError(Throwable e, int id) {
dismissLoadingDialog(); dismissLoadingDialog();
Log.d("TAG", "onError: " + e.getMessage() + ""); Log.d("TAG", "onError: " + e.getMessage() + "");
} }
}); });
/* /*
OkGo.<JobSearchBean>get(HttpInterface.TASK_LIST) OkGo.<JobSearchBean>get(HttpInterface.TASK_LIST)
@ -667,7 +670,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
int taskStatus = Constant.TASK_STASTUS; int taskStatus = Constant.TASK_STASTUS;
int type = Constant.TASK_TYPE; int type = Constant.TASK_TYPE;
int limit = Constant.LIMIT_TTPE; int limit = Constant.LIMIT_TTPE;
if (taskStatus==0){ if (taskStatus == 0) {
Message obtain = Message.obtain(); Message obtain = Message.obtain();
obtain.what = Constant.JOB_SEARCH_POI_WORD; obtain.what = Constant.JOB_SEARCH_POI_WORD;
obtain.obj = null; obtain.obj = null;
@ -835,8 +838,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
public boolean onClick(BaseDialog baseDialog, View v) { public boolean onClick(BaseDialog baseDialog, View v) {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putSerializable("poiEntity", poiEntity); bundle.putSerializable("poiEntity", poiEntity);
PoiFragment poiFragment = PoiFragment.newInstance(bundle); showSlidingFragment(1, bundle);
showSlidingFragment(poiFragment);
initRemovePoiSharePre(); initRemovePoiSharePre();
return false; return false;
} }
@ -849,8 +851,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
public boolean onClick(BaseDialog baseDialog, View v) { public boolean onClick(BaseDialog baseDialog, View v) {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putSerializable("poiEntity", poiEntity); bundle.putSerializable("poiEntity", poiEntity);
ChargingStationFragment chargingStationFragment = ChargingStationFragment.newInstance(bundle); showSlidingFragment(4, bundle);
showSlidingFragment(chargingStationFragment);
initRemovePoiSharePre(); initRemovePoiSharePre();
return false; return false;
} }
@ -863,8 +864,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
public boolean onClick(BaseDialog baseDialog, View v) { public boolean onClick(BaseDialog baseDialog, View v) {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putSerializable("poiEntity", poiEntity); bundle.putSerializable("poiEntity", poiEntity);
PoiVideoFragment poiVideoFragment = PoiVideoFragment.newInstance(bundle); showSlidingFragment(2, bundle);
showSlidingFragment(poiVideoFragment);
initRemovePoiSharePre(); initRemovePoiSharePre();
return false; return false;
} }
@ -877,8 +877,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
public boolean onClick(BaseDialog baseDialog, View v) { public boolean onClick(BaseDialog baseDialog, View v) {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putSerializable("poiEntity", poiEntity); bundle.putSerializable("poiEntity", poiEntity);
RoadFragment roadFragment = RoadFragment.newInstance(bundle); showSlidingFragment(3, bundle);
showSlidingFragment(roadFragment);
initRemovePoiSharePre(); initRemovePoiSharePre();
return false; return false;
} }
@ -892,8 +891,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
public boolean onClick(BaseDialog baseDialog, View v) { public boolean onClick(BaseDialog baseDialog, View v) {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putSerializable("poiEntity", poiEntity); bundle.putSerializable("poiEntity", poiEntity);
OtherFragment otherFragment = OtherFragment.newInstance(bundle); showSlidingFragment(5, bundle);
showSlidingFragment(otherFragment);
initRemovePoiSharePre(); initRemovePoiSharePre();
return false; return false;
} }
@ -953,30 +951,21 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
bundle.putSerializable("poiEntity", poiEntity); bundle.putSerializable("poiEntity", poiEntity);
switch (poiEntity.getType()) { switch (poiEntity.getType()) {
case 1: case 1:
PoiFragment poiFragment = PoiFragment.newInstance(bundle); showSlidingFragment(1, bundle);
showSlidingFragment(poiFragment);
break; break;
case 2: case 2:
ChargingStationFragment chargingStationFragment = ChargingStationFragment.newInstance(bundle); showSlidingFragment(4, bundle);
showSlidingFragment(chargingStationFragment);
break; break;
case 3: case 3:
PoiVideoFragment poiVideoFragment = PoiVideoFragment.newInstance(bundle); showSlidingFragment(2, bundle);
showSlidingFragment(poiVideoFragment);
break; break;
case 4: case 4:
RoadFragment roadFragment = RoadFragment.newInstance(bundle); showSlidingFragment(3, bundle);
showSlidingFragment(roadFragment);
break; break;
case 5: case 5:
OtherFragment otherFragment = OtherFragment.newInstance(bundle); showSlidingFragment(5, bundle);
showSlidingFragment(otherFragment);
break; break;
} }
frameLayout.setVisibility(View.GONE);
if (gatherGetFragment != null) {
fragmentTransaction.remove(gatherGetFragment);
}
} else if (data.what == Constant.GATHER_GET_MAP) { //地图界面点击采集 点击开始采集 } else if (data.what == Constant.GATHER_GET_MAP) { //地图界面点击采集 点击开始采集
PoiEntity poiEntity = (PoiEntity) data.obj; PoiEntity poiEntity = (PoiEntity) data.obj;
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
@ -984,24 +973,19 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
bundle.putBoolean("isSliding", true); // 通知抽屉不收回 bundle.putBoolean("isSliding", true); // 通知抽屉不收回
switch (poiEntity.getType()) { switch (poiEntity.getType()) {
case 1: case 1:
PoiFragment poiFragment = PoiFragment.newInstance(bundle); showSlidingFragment(1, bundle);
showSlidingFragment(poiFragment);
break; break;
case 2: case 2:
ChargingStationFragment chargingStationFragment = ChargingStationFragment.newInstance(bundle); showSlidingFragment(4, bundle);
showSlidingFragment(chargingStationFragment);
break; break;
case 3: case 3:
PoiVideoFragment poiVideoFragment = PoiVideoFragment.newInstance(bundle); showSlidingFragment(2, bundle);
showSlidingFragment(poiVideoFragment);
break; break;
case 4: case 4:
RoadFragment roadFragment = RoadFragment.newInstance(bundle); showSlidingFragment(3, bundle);
showSlidingFragment(roadFragment);
break; break;
case 5: case 5:
OtherFragment otherFragment = OtherFragment.newInstance(bundle); showSlidingFragment(5, bundle);
showSlidingFragment(otherFragment);
break; break;
} }
frameLayout.setVisibility(View.GONE); frameLayout.setVisibility(View.GONE);
@ -1054,7 +1038,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
setMainButtonVisiable((Integer) data.obj); setMainButtonVisiable((Integer) data.obj);
} else if (data.what == Constant.MAIN_HEADER) {// 控制主界面各个header } else if (data.what == Constant.MAIN_HEADER) {// 控制主界面各个header
View view = (View) data.obj; View view = (View) data.obj;
if (view!=null){ if (view != null) {
initHeader(view); initHeader(view);
} }
@ -1084,16 +1068,14 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
BitmapDescriptor pileDescriptor = BitmapDescriptorFactory.fromResource(R.mipmap.datouzhen); BitmapDescriptor pileDescriptor = BitmapDescriptorFactory.fromResource(R.mipmap.datouzhen);
LatLng mapCenterPoint = getMapCenterPoint(); LatLng mapCenterPoint = getMapCenterPoint();
markerPile = tencentMap.addMarker(new MarkerOptions(mapCenterPoint).icon(pileDescriptor)); markerPile = tencentMap.addMarker(new MarkerOptions(mapCenterPoint).icon(pileDescriptor));
ChargingPileFragment chargingPileFragment = ChargingPileFragment.newInstance(bundle); showSlidingFragment(7, bundle);
showSlidingFragment(chargingPileFragment);
} else if (data.what == Constant.CHARGING_STATION_PILE) {//充电站的充电桩 } else if (data.what == Constant.CHARGING_STATION_PILE) {//充电站的充电桩
chargingPileEntity = (ChargingPileEntity) data.obj; chargingPileEntity = (ChargingPileEntity) data.obj;
} else if (data.what == Constant.CHARGING_STATION_ITEM) {//充电站的item 跳转到充电桩 } else if (data.what == Constant.CHARGING_STATION_ITEM) {//充电站的item 跳转到充电桩
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putBoolean("isSliding", false); // 通知抽屉不收回 bundle.putBoolean("isSliding", false); // 通知抽屉不收回
bundle.putSerializable("chargingPileEntity", (ChargingPileEntity) data.obj); bundle.putSerializable("chargingPileEntity", (ChargingPileEntity) data.obj);
ChargingPileFragment chargingPileFragment = ChargingPileFragment.newInstance(bundle); showSlidingFragment(7, bundle);
showSlidingFragment(chargingPileFragment);
} else if (data.what == Constant.HOME_TREASURE) {//寻宝的刷新 } else if (data.what == Constant.HOME_TREASURE) {//寻宝的刷新
if ((boolean) data.obj) { if ((boolean) data.obj) {
initList(Constant.currentLocation); initList(Constant.currentLocation);
@ -1116,31 +1098,26 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
int type = data.arg1; int type = data.arg1;
showPoiMarkerByType(type, latLng); showPoiMarkerByType(type, latLng);
} else if (data.what == Constant.EVENT_WHAT_COMPLETE_TASK) { } else if (data.what == Constant.EVENT_WHAT_COMPLETE_TASK) {
// initRemoveFragment(); // initRemoveFragment();
PoiEntity poiEntity = (PoiEntity) data.obj; PoiEntity poiEntity = (PoiEntity) data.obj;
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putBoolean("isSliding", true); // 通知抽屉不收回 bundle.putBoolean("isSliding", true); // 通知抽屉不收回
bundle.putSerializable("poiEntity", poiEntity); bundle.putSerializable("poiEntity", poiEntity);
switch (poiEntity.getType()) { switch (poiEntity.getType()) {//1 "POI"2 "充电站"3 "POI录像"4 "道路录像"5 "其他"6 "面状任务"
case 1: case 1:
PoiFragment poiFragment = PoiFragment.newInstance(bundle); showSlidingFragment(1, bundle);
showSlidingFragment(poiFragment);
break; break;
case 2: case 2:
ChargingStationFragment chargingStationFragment = ChargingStationFragment.newInstance(bundle); showSlidingFragment(4, bundle);
showSlidingFragment(chargingStationFragment);
break; break;
case 3: case 3:
PoiVideoFragment poiVideoFragment = PoiVideoFragment.newInstance(bundle); showSlidingFragment(2, bundle);
showSlidingFragment(poiVideoFragment);
break; break;
case 4: case 4:
RoadFragment roadFragment = RoadFragment.newInstance(bundle); showSlidingFragment(3, bundle);
showSlidingFragment(roadFragment);
break; break;
case 5: case 5:
OtherFragment otherFragment = OtherFragment.newInstance(bundle); showSlidingFragment(5, bundle);
showSlidingFragment(otherFragment);
break; break;
} }
frameLayout.setVisibility(View.GONE); 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是否打开"); ToastUtil.showShort(getContext(), "无法获取当前位置请检查GPS是否打开");
return; return;
} }
// LatLng mapCenterPoint = getMapCenterPoint(); // LatLng mapCenterPoint = getMapCenterPoint();
LatLng newPoiLatLng = new LatLng(Constant.currentLocation.getLatitude(), Constant.currentLocation.getLongitude()); LatLng newPoiLatLng = new LatLng(Constant.currentLocation.getLatitude(), Constant.currentLocation.getLongitude());
poiEntity.setX(newPoiLatLng.getLongitude() + ""); poiEntity.setX(newPoiLatLng.getLongitude() + "");
poiEntity.setY(newPoiLatLng.getLatitude() + ""); poiEntity.setY(newPoiLatLng.getLatitude() + "");
bundle.putSerializable("poiEntity", poiEntity);
ShareDialog.show((AppCompatActivity) getActivity(), itemList, new ShareDialog.OnItemClickListener() { ShareDialog.show((AppCompatActivity) getActivity(), itemList, new ShareDialog.OnItemClickListener() {
@Override @Override
public boolean onClick(ShareDialog shareDialog, int index, ShareDialog.Item item) { public boolean onClick(ShareDialog shareDialog, int index, ShareDialog.Item item) {
switch (index) { switch (index) {
case 0: // POI case 0: // POI
new Thread(new Runnable() { showPoiMarkerByType(1, newPoiLatLng);
@Override showSlidingFragment(1, bundle);
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();
break; break;
case 1: // POI录像 case 1: // POI录像
new Thread(new Runnable() { showPoiMarkerByType(2, newPoiLatLng);
@Override showSlidingFragment(2, bundle);
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();
break; break;
case 2://道路录像 case 2://道路录像
new Thread(new Runnable() { showPoiMarkerByType(3, newPoiLatLng);
@Override showSlidingFragment(3, bundle);
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();
break; break;
case 3://充电站 case 3://充电站
new Thread(new Runnable() { showPoiMarkerByType(4, newPoiLatLng);
@Override showSlidingFragment(4, bundle);
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();
break; break;
case 4://其他 case 4://其他
new Thread(new Runnable() { showPoiMarkerByType(5, newPoiLatLng);
@Override showSlidingFragment(5, bundle);
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();
break; break;
} }
return false; return false;
@ -1533,9 +1421,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
case R.id.iv_filter: case R.id.iv_filter:
initThread(); initThread();
initList(Constant.currentLocation); initList(Constant.currentLocation);
FilterFragment filterFragment = FilterFragment.newInstance(new Bundle()); showSlidingFragment(6, new Bundle());
showSlidingFragment(filterFragment);
break; break;
case R.id.iv_message: case R.id.iv_message:
Intent messageIntent = new Intent(getContext(), FragmentManagement.class); Intent messageIntent = new Intent(getContext(), FragmentManagement.class);
@ -1573,47 +1459,91 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
/** /**
* 将fragment显示到抽屉内 * 将fragment显示到抽屉内
*/ */
private void showSlidingFragment(BaseDrawerFragment fragment) { private void showSlidingFragment(int type, Bundle bundle) {
fragmentTransaction = supportFragmentManager.beginTransaction(); FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();
int[] deviceInfo = DensityUtil.getDeviceInfo(getActivity()); int[] deviceInfo = DensityUtil.getDeviceInfo(getActivity());
sliding_layout.setPanelHeight(deviceInfo[1] / 2); sliding_layout.setPanelHeight(deviceInfo[1] / 2);
sliding_layout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); sliding_layout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED);
fragmentTransaction.add(R.id.scroll_view, fragment, fragment.getClass().getName()); hideAllFragment(fragmentTransaction);
if (!(fragment instanceof FilterFragment)) { switch (type) {
FilterFragment filterFragment = (FilterFragment) supportFragmentManager.findFragmentByTag(FilterFragment.class.getName()); case 1://poi:
if (filterFragment != null) { if (poiFragment == null) {
fragmentTransaction.hide(filterFragment); 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();
} }
/** /**