Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android问题:使用图标下的TableView/Text_Android - Fatal编程技术网

Android问题:使用图标下的TableView/Text

Android问题:使用图标下的TableView/Text,android,Android,我希望为应用程序创建一个基本的启动程序(基本上是一个启动其他活动的主屏幕)。使用绝对布局,我能够大致了解我要寻找的内容。所有“TextView”字段都将替换为要启动的活动的名称 但我不想使用绝对布局,以避免明显的问题。我在论坛上读到,我可以使用TableView,每个TableRow会添加一行,每个ButtonImage本质上会添加一列。问题是,我似乎不知道如何在每个图像按钮下显示TextView,因为这实际上是在表中插入一个新列(因此图像和文本并排显示,而不是图像下的文本) 附件是我当前的绝对

我希望为应用程序创建一个基本的启动程序(基本上是一个启动其他活动的主屏幕)。使用绝对布局,我能够大致了解我要寻找的内容。所有“TextView”字段都将替换为要启动的活动的名称

但我不想使用绝对布局,以避免明显的问题。我在论坛上读到,我可以使用TableView,每个TableRow会添加一行,每个ButtonImage本质上会添加一列。问题是,我似乎不知道如何在每个图像按钮下显示TextView,因为这实际上是在表中插入一个新列(因此图像和文本并排显示,而不是图像下的文本)

附件是我当前的绝对格式的示例布局XML。任何帮助都将不胜感激。:)


您应该插入线性布局(或任何其他布局)作为包含其他元素的行单元格

示例代码生成一个包含两个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>