Android问题:使用图标下的TableView/Text
我希望为应用程序创建一个基本的启动程序(基本上是一个启动其他活动的主屏幕)。使用绝对布局,我能够大致了解我要寻找的内容。所有“TextView”字段都将替换为要启动的活动的名称 但我不想使用绝对布局,以避免明显的问题。我在论坛上读到,我可以使用TableView,每个TableRow会添加一行,每个ButtonImage本质上会添加一列。问题是,我似乎不知道如何在每个图像按钮下显示TextView,因为这实际上是在表中插入一个新列(因此图像和文本并排显示,而不是图像下的文本) 附件是我当前的绝对格式的示例布局XML。任何帮助都将不胜感激。:)Android问题:使用图标下的TableView/Text,android,Android,我希望为应用程序创建一个基本的启动程序(基本上是一个启动其他活动的主屏幕)。使用绝对布局,我能够大致了解我要寻找的内容。所有“TextView”字段都将替换为要启动的活动的名称 但我不想使用绝对布局,以避免明显的问题。我在论坛上读到,我可以使用TableView,每个TableRow会添加一行,每个ButtonImage本质上会添加一列。问题是,我似乎不知道如何在每个图像按钮下显示TextView,因为这实际上是在表中插入一个新列(因此图像和文本并排显示,而不是图像下的文本) 附件是我当前的绝对
您应该插入线性布局(或任何其他布局)作为包含其他元素的行单元格 示例代码生成一个包含两个TableRow的TableLayout,每个TableRow包含三个元素(由weightSum属性定义)。我使用LinearLayouts作为垂直方向的子元素(列单元格),因此元素的位置正确
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TableRow
android:weightSum="3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_weight="1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I AM AN ICON"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="APP NAME"
/>
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I AM AN ICON"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="APP NAME"
/>
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I AM AN ICON"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="APP NAME"
/>
</LinearLayout>
</TableRow>
<TableRow
android:weightSum="3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_weight="1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I AM AN ICON"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="APP NAME"
/>
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I AM AN ICON"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="APP NAME"
/>
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I AM AN ICON"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="APP NAME"
/>
</LinearLayout>
</TableRow>
</TableLayout>
而且,正如ryandlf指出的,尽可能避免使用静态尺寸。使用布局权重是关键。不要尝试在px中设置尺寸,因为在所有不同的屏幕尺寸上,这将是一场噩梦。权重根据设置的方式均匀分布宽度。如果您希望一行中的3个项目是均匀的空格,请将每个权重设置为1,以此类推。谢谢,这非常有用!是的,我想避免静态维度…我开始使用它们,并很快意识到如果使用它们,可能会遇到的问题。非常感谢你们两位!如果我能给你买啤酒,我会的。做吧,我有时间:)是的,静态维度是一种很容易避免的痛苦。。。刚开始时只需要一些最小的额外努力。
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TableRow
android:weightSum="3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_weight="1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I AM AN ICON"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="APP NAME"
/>
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I AM AN ICON"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="APP NAME"
/>
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I AM AN ICON"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="APP NAME"
/>
</LinearLayout>
</TableRow>
<TableRow
android:weightSum="3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_weight="1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I AM AN ICON"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="APP NAME"
/>
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I AM AN ICON"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="APP NAME"
/>
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I AM AN ICON"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="APP NAME"
/>
</LinearLayout>
</TableRow>
</TableLayout>