我在Android 1.5上的RelativeLayout中遇到问题重叠...在Android 1.6及更高版本上一切正常。
我确实知道Android 1.5在RelativeLayout上有一些问题,但我无法在StackOverflow或android初学者组中找到任何针对我特定问题的内容。
我的布局由四个部分组成,每个部分由TextView,Gallery和另一个垂直对齐的TextView组成:
运行应用程序
最近的应用
服务
流程
当显示所有这四个项目时,一切正常。但是,我的应用程序允许用户指定其中一些不显示。如果用户关闭“正在运行的应用程序,最近的应用程序”或“服务”,则其余部分会突然重叠。
这是我的布局代码。我不确定我做错了什么。当用户关闭部分的显示时,我使用View.GONE可见性设置:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:layout_gravity="center_vertical"
android:background="@null"
>
<!-- Running Gallery View Items -->
<TextView
style="@style/TitleText"
android:id="@+id/running_gallery_title_text_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:paddingLeft="1sp"
android:paddingRight="10sp"
android:text="@string/running_title"
/>
<Gallery
android:id="@+id/running_gallery_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/running_gallery_title_text_id"
android:spacing="5sp"
android:clipChildren="false"
android:clipToPadding="false"
android:unselectedAlpha=".5"
/>
<TextView
style="@style/SubTitleText"
android:id="@+id/running_gallery_current_text_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/running_gallery_id"
android:gravity="center_horizontal"
/>
<!-- Recent Gallery View Items -->
<TextView
style="@style/TitleText"
android:id="@+id/recent_gallery_title_text_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/running_gallery_current_text_id"
android:gravity="left"
android:paddingLeft="1sp"
android:paddingRight="10sp"
android:text="@string/recent_title"
/>
<Gallery
android:id="@+id/recent_gallery_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/recent_gallery_title_text_id"
android:spacing="5sp"
android:clipChildren="false"
android:clipToPadding="false"
android:unselectedAlpha=".5"
/>
<TextView
style="@style/SubTitleText"
android:id="@+id/recent_gallery_current_text_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/recent_gallery_id"
android:gravity="center_horizontal"
/>
<!-- Service Gallery View Items -->
<TextView
style="@style/TitleText"
android:id="@+id/service_gallery_title_text_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/recent_gallery_current_text_id"
android:gravity="left"
android:paddingLeft="1sp"
android:paddingRight="10sp"
android:text="@string/service_title"
/>
<Gallery
android:id="@+id/service_gallery_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/service_gallery_title_text_id"
android:spacing="5sp"
android:clipChildren="false"
android:clipToPadding="false"
android:unselectedAlpha=".5"
/>
<TextView
style="@style/SubTitleText"
android:id="@+id/service_gallery_current_text_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/service_gallery_id"
android:gravity="center_horizontal"
/>
</RelativeLayout>
我省略了进程部分的xml(有点徒劳)试图让它更短......
如何在Android 1.5中完成此工作?我不认为这只是重新排序xml中的视图的问题,因为它在显示所有内容时都能正常工作。
答案 0 :(得分:4)
两种可能的解决方案:
使用任一解决方案的想法是确保您永远不会相对于View.GONE的视图定位某些内容;我怀疑这是你遇到的bug的来源。
如果我可以问,虽然......为什么你甚至需要在这里使用RelativeLayout?从我所看到的一目了然,这里的所有内容都可以很好地融入垂直的LinearLayout,事实上,这种安排似乎在概念上更简单。