我正在为 Android 平板电脑编写一个目录应用程序,每页显示 6 个项目:每行 3 个项目。每个项目由图像 (200x300) 和文本组成。在 Eclipse 中使用 android xml 布局编辑器设计一切似乎都很好,因为我为每个项目使用默认图像和一个虚拟的固定文本:每个项目在那里水平完全等距。
当我在平板电脑上运行时,每个项目都被从文件系统(再次为 200x300)获取的图像覆盖,而文本(可变长度)则从数据库获取。问题是在 6 个元素填充了我的自定义数据后,布局似乎没有对齐,正如您从这个屏幕截图中看到的那样:
可能(但我不确定)问题是由长文本引起的。有没有办法(如果问题是文本)强制布局保持固定?(或使字体变小(或截断文本,我不在乎))
这是我正在使用的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RootView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/white"
android:gravity="center_horizontal|center_vertical"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/filaTop"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_margin="15dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/ivBottle1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:adjustViewBounds="true"
android:src="@drawable/bottle_trans" />
<TextView
android:id="@+id/tvBottle1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top|center"
android:text="vino"
android:textAlignment="center"
android:textSize="22sp" >
</TextView>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/ivBottle2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:adjustViewBounds="true"
android:src="@drawable/bottle_trans" />
<TextView
android:id="@+id/tvBottle2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top|center"
android:text="vino"
android:textAlignment="center"
android:textSize="22sp" >
</TextView>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/ivBottle3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:adjustViewBounds="true"
android:src="@drawable/bottle_trans" />
<TextView
android:id="@+id/tvBottle3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top|center"
android:text="vino"
android:textAlignment="center"
android:textSize="22sp" >
</TextView>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/filaBottom"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_margin="15dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/ivBottle4"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:adjustViewBounds="true"
android:src="@drawable/bottle_trans" />
<TextView
android:id="@+id/tvBottle4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top|center"
android:text="vino"
android:textAlignment="center"
android:textSize="22sp" >
</TextView>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/ivBottle5"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:adjustViewBounds="true"
android:src="@drawable/bottle_trans" />
<TextView
android:id="@+id/tvBottle5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top|center"
android:text="vino"
android:textAlignment="center"
android:textSize="22sp" >
</TextView>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/ivBottle6"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:adjustViewBounds="true"
android:src="@drawable/bottle_trans" />
<TextView
android:id="@+id/tvBottle6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top|center"
android:text="vino"
android:textAlignment="center"
android:textSize="22sp" >
</TextView>
</LinearLayout>
</LinearLayout>
提前致谢。
编辑(已解决):放入android:layout_width="0dip"
每个线性布局,解决了戴尔威尔逊建议的问题,如下所示:
<LinearLayout android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="1" android:orientation="vertical" >