是这样的,我的Activity中左侧是RelativeLayout包裹的listview,这个RelativeLayout的宽度是360dp,右侧是mapview。RelativeLayout是隐藏的,只有poi搜索出数据设置到listview后,才显示,这时候mapview向右侧移动,会闪黑屏,这个问题怎么解决呢?
时间: 2024-03-29 07:35:05 浏览: 18
这个问题可能是由于listview的显示和隐藏导致的布局重绘引起的。我们可以尝试在listview显示和隐藏时使用动画,而不是直接改变其可见性。可以使用属性动画或布局动画来实现动画效果。具体步骤如下:
1. 在listview显示时,使用属性动画或布局动画将其从左侧平移进入屏幕,同时将mapview向右移动。
2. 在listview隐藏时,使用属性动画或布局动画将其从屏幕平移出去,同时将mapview恢复原位。
这样做可以避免布局重绘,减少闪烁问题的出现。同时,可以提升用户体验,增加动态效果。
相关问题
但是这个RelativeLayout包裹的listview还是在左侧显示哈
对不起,我的回答有误。根据你的描述,实际上是想要在 `MapView` 上方覆盖一个 `RelativeLayout`,并在其中显示 `ListView`,对吗?那么可以使用 `android:layout_above` 属性将 `RelativeLayout` 放置在 `MapView` 上方,并使用 `android:layout_alignParentLeft="true"` 和 `android:layout_alignParentRight="true"` 属性将 `RelativeLayout` 左右两侧与父容器对齐,避免 `RelativeLayout` 在左侧显示。具体代码如下所示:
```
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/poi_list_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_list_circular"
android:visibility="gone"
android:layout_above="@id/bmapView">
<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"
android:layout_alignParentTop="true" />
</RelativeLayout>
```
这样可以将 `RelativeLayout` 放在 `MapView` 的上方,不会占用 `MapView` 的空间。
我说错了,不是listview隐藏 是RelativeLayout隐藏
那么你可以在RelativeLayout隐藏时,手动设置mapview的左边距为0,这样可以保证mapview填充整个父容器,不会出现黑屏的情况。具体代码如下:
```
relativeLayout.setVisibility(View.GONE);
// 将mapview的左边距设置为0
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mapView.getLayoutParams();
params.leftMargin = 0;
mapView.setLayoutParams(params);
```
你需要将上述代码放到隐藏RelativeLayout的地方,这样就可以保证在RelativeLayout隐藏后,mapview会自动填充整个父容器,不会出现黑屏的情况。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)