当父视图更改大小时,MapBox Android会使布局无效

时间:2016-02-03 11:20:44

标签: android mapbox

我有一个带有子MapBoxView

的frameLayout
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:mapbox="http://schemas.android.com/apk/res-auto">

    <com.mapbox.mapboxsdk.views.MapView
        android:id="@+id/mapBoxMapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        mapbox:access_token="@string/accessTokenMapBox"/>

</FrameLayout>

我更改父视图的大小,但MapView没有更新布局

我尝试调用requsetLayout(),尝试invalidateLayout() - 没有效果。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

您是否尝试过在LinearLayout中包装FrameLayout,使其看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:mapbox="http://schemas.android.com/apk/res-auto"
    tools:context="com.mycompany.myfirstglapp.MainActivity"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:orientation="vertical">

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        xmlns:mapbox="http://schemas.android.com/apk/res-auto">

        <com.mapbox.mapboxsdk.views.MapView
            android:id="@+id/mapBoxMapView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            mapbox:access_token="@string/accessTokenMapBox"/>

    </FrameLayout>

除非您计划在mapView布局顶部添加按钮(如按钮),否则可以删除FrameLayout。如果要在运行时更改对象或大小的位置,则使用android.support.design.widget.CoordinatorLayout而不是FrameLayout也可能有所帮助。