我在StackOverflow上搜索过,我的问题无法解决。
我的MapView占据了我的所有屏幕。我使用了重量,但现在,它不起作用。 顺便说一句,它适用于AVD!这太糟了^^
我的java代码中有一个map.clear()。有可能吗?
有我的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:id="@+id/map_frame"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.30" >
<fragment
android:id="@+id/mapView"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</FrameLayout>
<LinearLayout
android:id="@+id/list_establishments"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.7"
android:orientation="vertical" >
<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.3"
android:text="Truc 1" />
<TextView
android:id="@+id/text2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Truc 2"
android:layout_weight="0.3" />
<TextView
android:id="@+id/text3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Truc 3"
android:layout_weight="0.3" />
</LinearLayout>
</LinearLayout>
答案 0 :(得分:2)
试试这个:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:id="@+id/map_frame"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.30" >
<fragment
android:id="@+id/mapView"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</FrameLayout>
<LinearLayout
android:id="@+id/list_establishments"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0.7"
android:orientation="vertical" >
<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.3"
android:text="Truc 1" />
<TextView
android:id="@+id/text2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Truc 2"
android:layout_weight="0.3" />
<TextView
android:id="@+id/text3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Truc 3"
android:layout_weight="0.3" />
</LinearLayout>
它不起作用,因为您使用fill_parent作为高度。当总和大于LinearLayout时,权重用于分配剩余的空白空间或占用空间。将宽度设置为0dip,它将起作用。
答案 1 :(得分:0)
使用
<com.google.android.gms.maps.MapView
android:id="@+id/map_detail"
android:layout_width="match_parent"
android:layout_height="246dp" />
而不是片段来创建地图布局。
在java片段类中,使用此代码初始化地图:
MapsInitializer.initialize(getActivity());
MapView mapView = (MapView) v.findViewById(R.id.map_detail);
mapView.onCreate(savedInstanceState);
if(mapView!=null){
GoogleMap map = mapView.getMap();
}