Android 布局背景中的片段在配置更改时未填充整个屏幕
我有一个带有地图片段的第一个布局,它在配置更改(方向)时完美地填充了整个屏幕Android 布局背景中的片段在配置更改时未填充整个屏幕,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,我有一个带有地图片段的第一个布局,它在配置更改(方向)时完美地填充了整个屏幕 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.project.MainActivity" >
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
</RelativeLayout>
问题是当第一个布局以透明的方式出现在背景上时。带有微调器的第二个新布局显示在第一个布局上,但当方向改变时,地图片段不会填充整个屏幕。它保持它的宽度。带有微调器的第二个布局将填充整个屏幕
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:orientation="vertical"
tools:context="com.example.project.SecondActivity" >
<Spinner
android:id="@+id/spinner"
android:drawSelectorOnTop="true"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
提前感谢!我真的很感激任何帮助
编辑:我在清单中的第一个活动中使用了
android:configChanges=“screenSize | orientation”
。我看到SecondActivity的布局与两个维度的父级都匹配,因此当启动SecondActivity时,MainActivity会被发送到后堆栈并停止。有关更多信息,请参阅此链接:
:
“当一个活动停止时,系统将保留其用户界面的当前状态。”因此,当配置发生变化(如方向)时,只更新第二个活动,因为它是唯一被聚焦的活动,并且具有整个屏幕的可见性
尝试将SecondActivity布局设置为包装两个维度(宽度和高度)的内容,这样MainActivity布局将部分隐藏,Android系统将在需要时刷新配置,即使SecondActivity处于焦点状态
也看到这个。
“暂停:
另一个活动位于前台并具有焦点,但此活动仍然可见。也就是说,另一个活动位于此活动之上,并且该活动部分透明或不覆盖整个屏幕。暂停的活动完全处于活动状态(活动对象保留在内存中,它维护所有状态和成员信息,并保持与窗口管理器的连接),但在内存极低的情况下,系统可能会将其终止。”
“停止:
该活动被另一个活动完全遮挡(该活动现在处于“后台”)。已停止的活动也仍然处于活动状态(该活动对象保留在内存中,它维护所有状态和成员信息,但未附加到窗口管理器)。但是,用户不再可以看到它,当其他地方需要内存时,系统可能会将其删除。”
因此,关键是不要在SecondActivity布局中使用“匹配父级”,也不要在MainActivity上使用透明背景
请尝试一下,让我知道它是如何运行的!谢谢!谢谢你的详细回答!它也不起作用。事实上,我也在使用自定义主题来获取透明度,因为
android:background=“@android:color/transparent”
显然什么都不做。我想实现这一点。我想看看微调器(第二个布局)仍然可以看到下面的地图片段。我明白了,但问题是当我改变方向时,就像我说的。也许解决方案是只使用一个活动和/或一个布局。是的,这可能会起作用,你可以尝试使用MainActivity和一个带有透明背景的自定义弹出窗口,它不会占据所有屏幕和屏幕我把主活动连接到窗口管理器。谢谢!