フルスクリーンレイアウトのGoogleMap
、下部のViewPager
などの機能を実装しようとしています。ViewPagerを使用したGoogleMap、ViewPagerFragmentアイテムの全画面スクロール
ViewPager
は、最初は下部にあり、コンテンツの高さが大きい場合は、垂直方向にスクロールできます。ユーザーはフルスクリーンでスクロールすることができます(ViewPagerのページ項目の高さは、下のデモ画像の下から上に上がっています)。
現在、私はViewPagerのフラグメント(以下のレイアウトコード)内でScrollView
(match_parntの高さとその380dpのようなpaddingTop)の助けを借りて同じUI効果を達成することができます。
今すぐ問題が発生しましたGoogleMap
は、フラグメントのmatch_parent
という高さのため、タッチ/クリックイベントに反応しません。
私の期待する結果はGoogleMap
です。タッチ/クリックイベントを聴くことができなければならず、ViewPagerのフラグメントは、マップの上から下の方向に垂直にスクロール可能でなければなりません。
私は検索中に、requestDisallowInterceptTouchEvent
を使用して、それらのタッチ/クリックイベントをリッスンする子ビューを作成できることを発見しました。しかし、私のケースでは、フラグメント内のViewPagerとScrollViewがすべてのタッチ/クリックイベントを取っています。コードの
ワンピース、
activity.xml
<FrameLayout
...
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
...
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
... />
<android.support.v7.widget.Toolbar
...
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
... />
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</FrameLayout>
viewpager_fragment_item.xml
<ScrollView
...
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
... >
<LinearLayout
...
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="380dp" >
<!--
child views in here.
-->
</LinearLayout>
</ScrollView>
の予想される出力のデモ
このデモのユーザーで、Map
上/アウトズームに触れることができ、ViewPager
をスライドし、フルスクリーンでViewPagerのFragemtをスクロールすることができます。だから、これは私が達成しようとしていることです。
誰かが役に立つリンクやデモをお寄せいただければ幸いです。
助けてください!
ありがとうございました。 BottomSheet
レイアウトを使用して、それを解決し[OK]を