我有一个有ViewPager的Activity。在这个ViewPager中有4个碎片。其中一个片段(我们称之为MyListFragment)在RelativeLayout中有一个带有ListView和MapView(Google maps V2)的布局文件。这两个视图中只有一个一次可见。最初,ListView是可见的,MapView消失了。我有一个Button,当我点击它时,我切换了可见性:ListView消失了,MapView可见。当我再次单击它时,MapView设置为已消失,ListView显示为可见。你得到了照片。 现在问题如下:在设置MapView后,ListView恢复可见,ViewPager将不再刷卡。相反,所有触摸事件都转到ListView(这是一个普通的垂直ListView)。我在几步中将其分解,并在我能够或不能刷ViewPager时进行检查。
这很奇怪,因为第5步看起来与第1步的状态相同。这是我的布局文件:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/fragment_padding"
android:paddingRight="@dimen/fragment_padding"
android:paddingBottom="@dimen/list_padding_bottom"
android:clipToPadding="false"
android:scrollbarStyle="outsideOverlay"/>
<com.google.android.gms.maps.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"/>
<Button
android:id="@+id/button_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/fragment_padding"
android:layout_marginLeft="@dimen/fragment_padding"
android:layout_marginRight="@dimen/fragment_padding"
android:text="Show on map"/>
以下是一些onCreateView
代码:
this.listView = (ListView) view.findViewById(R.id.listView);
this.mapView = (MapView) view.findViewById(R.id.mapView);
this.mapView.onCreate(savedInstanceState);
this.mapView.getMapAsync(this);
以下是按钮的onClick中发生的情况:
if(this.listView.getVisibility() == View.VISIBLE)
{
this.listView.setVisibility(View.GONE);
this.mapView.setVisibility(View.VISIBLE);
this.buttonSwitch.setText("Show in list");
}
else
{
this.listView.setVisibility(View.VISIBLE);
this.mapView.setVisibility(View.GONE);
this.buttonSwitch.setText("Show on map");
}
如果我需要提供另一段代码,请告诉我。任何帮助将不胜感激,因为我似乎找不到这个错误的原因。
答案 0 :(得分:0)
仅启用和禁用,如:-
java:-
googleMap.getUiSettings().setAllGesturesEnabled(false); // true / false with Visible / Gone
科特琳:-
googleMap?.uiSettings?.setAllGesturesEnabled(false)