寻宝页面切换

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;
public View mView;
protected FragmentManager supportFragmentManager;
@Nullable

View File

@ -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<JobSearchBean>() {
@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<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);
@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<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);
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")) {//
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
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.<JobSearchBean>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();
}
/**