Fed*_*ico 0 xml android google-maps scrollview
我在NestedScroollView内的MapView有问题。我的Google地图显示正确,但是,当我尝试滚动地图时,它不起作用。我不知道该怎么解决。谁能帮我?谢谢!
那是我的代码:Dog_view.xml
...
<android.support.v4.widget.NestedScrollView
android:fillViewport="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/nestedScroll"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<include layout="@layout/dog_view_layout"
android:layout_height="match_parent"
android:layout_width="match_parent"/>
</android.support.v4.widget.NestedScrollView>
Run Code Online (Sandbox Code Playgroud)
dog_view_layout.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:background="#000"
android:layout_height="wrap_content"
android:paddingTop="20dp">
<com.google.android.gms.maps.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
狗片段
...
MapView mMapView;
private GoogleMap googleMap;
public DogFragment(){
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.dog_view, container, false);
this.dog = getArguments().getParcelable("data");
mMapView = (MapView) rootView.findViewById(R.id.mapView);
mMapView.onCreate(savedInstanceState);
mMapView.onResume(); // needed to get the map to display immediately
try {
MapsInitializer.initialize(getActivity().getApplicationContext());
} catch (Exception e) {
e.printStackTrace();
}
mMapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap mMap) {
googleMap = mMap;
googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
googleMap.setMyLocationEnabled(true);
}
});
setLayout(rootView);
return rootView;
}
.....
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您必须创建自定义MapView。请遵循下面提供的代码段
public class AppMapView extends MapView {
public AppMapView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_UP:
System.out.println("unlocked");
this.getParent().requestDisallowInterceptTouchEvent(false);
break;
case MotionEvent.ACTION_DOWN:
System.out.println("locked");
this.getParent().requestDisallowInterceptTouchEvent(true);
break;
}
return super.dispatchTouchEvent(ev);
}
}
Run Code Online (Sandbox Code Playgroud)
在XML中,请遵循以下代码:
<com.hantash.nadeem.custom_views.AppMapView
android:id="@+id/map_ride_route"
android:layout_width="match_parent"
android:layout_height="220dp"
android:layout_margin="10dp"/>
Run Code Online (Sandbox Code Playgroud)