#android #google-maps #bottom-sheet
#Android #google-карты #нижний лист
Вопрос:
Я хочу создать представление, в котором я хочу показывать карты Google внутри фрагмента BottomSheetFragment. В настоящее время мой view также реагирует на жесты пользователя, чтобы изменить состояние нижнего листа, но мне нужны жесты для работы только с картой (например, для панорамирования карты). Я хочу только closeBottomSheetLinearLayout, чтобы изменить состояние нижнего листа при прокрутке. Возможно ли это?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorGray"
android:elevation="10dp"
android:orientation="vertical">
<LinearLayout
android:id="@ id/closeBottomSheetLinearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@android:color/white">
...
</LinearLayout>
<pl.renesans.renesans.SquareLinearLayout
android:id="@ id/mapLayout"
android:layout_width="match_parent"
android:layout_height="0dp">
<fragment
android:id="@ id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".tour.TourActivity"/>
</pl.renesans.renesans.SquareLinearLayout>
</LinearLayout>
Заранее спасибо
Ответ №1:
Мне пришлось реализовать onInterceptTouchEvent (MotionEvent ev) таким образом, и это сработало.
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
getParent().requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
getParent().requestDisallowInterceptTouchEvent(false);
break;
default:
break;
}
return super.onInterceptTouchEvent(ev);
}