Android 1.5上的RelativeLayout与视图重叠
问题描述:
我在Android 1.5上的RelativeLayout中出现视图重叠的问题...在Android 1.6及更高版本上,一切正常。Android 1.5上的RelativeLayout与视图重叠
我明白Android 1.5有一些与RelativeLayout相关的问题,但我无法在StackOverflow或Android初学者组中找到任何有关我的特定问题的信息。
我的布局由四个部分组成,其中的每一个都是由一个TextView,一个画廊,和另一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>
我ommitted在一个(有点徒劳的)尝试进程部分XML保持这个短...
我能做些什么才能在Android 1.5中实现这个功能?我不认为这只是在xml中对视图进行重新排序的问题,因为在显示所有内容时它可以正常工作。
答
两个可能的解决方案:
- 尝试元素的高度为0或1 PX和知名度设置为不可见,而不是消失。
- 将LinearLayout中的每个图库/文本视图设置为wrap_height,并在布局上设置上方/下方而不是子视图。然后将子元素设置为View.GONE,留下用于相对定位的线性布局仍然可见,但是包装高度为0.
这两种解决方案的想法都是确保您永远不会定位相对于这是View.GONE;我怀疑这是你遇到的错误的来源。
如果我可能会问,虽然......为什么你甚至需要在这里使用RelativeLayout呢?从我一眼就能看到的情况来看,这里的所有东西都可以很好地适用于垂直LinearLayout,事实上这种安排在概念上似乎更简单。
感谢您的建议...我会给他们一个尝试。 这是我对纵向模式的布局...使用横向模式会变得更复杂一些,并且需要几个嵌套的LinearLayout。虽然我可以在纵向模式下使用LinearLayout,但对于横向模式仍然存在相同的问题。 – Justin 2010-04-04 20:01:44