<RelativeLayout android:id="@+id/poi_list_container" android:layout_width="360dp" android:layout_height="match_parent" android:background="@drawable/bg_list_circular" android:visibility="gone"> <ListView android:id="@+id/poi_list" android:layout_width="match_parent" android:layout_height="match_parent" android:hardwareAccelerated="true" android:scrollbars="none" /> </RelativeLayout> <!-- <RelativeLayout--> <!-- android:layout_width="0dp"--> <!-- android:layout_height="match_parent"--> <!-- android:layout_weight="3">--> <com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:clickable="true" android:focusable="true" android:hardwareAccelerated="true" /> 我想要的结果是 将RelativeLayout包裹的listview放到mapview之后,并且显示在布局的左侧,不占用mapview的空间 ,listview显示出来了,但是它首次加载时listview设置数据了才会显示,这时候mapview向右侧移动,导致出现黑屏,我要解决的是这个问题
时间: 2024-03-28 20:41:41 浏览: 14
这个问题的根本原因是布局中的权重(android:layout_weight)分配不合理,导致ListView首次加载时占用了Mapview的空间,从而引起了黑屏的问题。要解决这个问题,可以将布局更改为水平方向的LinearLayout,并将RelativeLayout和MapView放入其中,然后给RelativeLayout设置一个固定的宽度,这样ListView就不会再占用MapView的空间了。代码示例:
```
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<RelativeLayout
android:id="@+id/poi_list_container"
android:layout_width="200dp"
android:layout_height="match_parent"
android:background="@drawable/bg_list_circular"
android:visibility="gone">
<ListView
android:id="@+id/poi_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hardwareAccelerated="true"
android:scrollbars="none" />
</RelativeLayout>
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:focusable="true"
android:hardwareAccelerated="true" />
</LinearLayout>
```