【发布时间】:2010-12-13 10:15:47
【问题描述】:
我的布局以纵向/横向模式显示时遇到问题。基本上,我的布局的层次结构是这样的:Main(工作区视图)-> TextView + Listview(w/ BaseAdapter)-> Listview Item。
我的问题是,如果我从纵向模式开始,我的项目会正确显示。但是如果我旋转设备,我的整个布局会移动大约半个屏幕(即当我切换时,视图左侧大约一半是完全黑色的,它认为我真正的“左边缘”是在屏幕中间 - 我可以看到应该在中间左对齐的项目)。另一方面,如果我从横向模式开始并切换到纵向模式,屏幕右侧的一半是完全黑色的,“右边缘”在中间,我可以看到我最右边的项目在那里结束。
这是我正在使用的布局... 首先是我在工作区中的视图(Listview 使用 BaseAdapter):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/tvMainChannel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Disconnected"
android:textColor="#FFFFFF"
android:singleLine="true"/>
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
这是我个人的列表视图项目,它们被膨胀到上面的列表视图中(水平排列,每个项目应该从左到右显示:图像、文本、图像):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal">
<ImageView android:id="@+id/images"
android:layout_height="30dp"
android:layout_width="wrap_content"
android:paddingLeft="5px"
android:paddingRight="5px"
android:layout_alignParentLeft="true"/>
<ImageView android:id="@+id/images_ping"
android:layout_height="30dp"
android:layout_width="wrap_content"
android:paddingLeft="5px"
android:paddingRight="5px"
android:layout_alignParentRight="true"/>
<TextView android:id="@+id/text"
android:layout_height="30dp"
android:layout_width="wrap_content"
android:gravity="center_vertical"
android:text="Username"
android:textColor="#FFFFFF"
android:layout_toRightOf="@+id/images"/>
</RelativeLayout>
我尝试在线性和相对之间切换,但我没有找到任何地方......对于这可能是什么原因感到不知所措。
非常感谢任何见解。
谢谢!
编辑:为了更清楚一点,这是我使用 Workspace 的 main.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<com.test.MultiView xmlns:app="http://schemas.android.com/apk/res/com.test"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mvMain"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
app:default_screen="0">
<include android:id="@+id/main_rtb" layout="@layout/main_rtb" />
<include android:id="@+id/main_listview" layout="@layout/main_listview" />
</com.test.MultiView>
【问题讨论】: