由垂直分隔符引起的Android表布局问题

由垂直分隔符引起的Android表布局问题,android,android-layout,Android,Android Layout,以下是我的Android应用程序布局 我试过桌子的布局, 如果我不加垂直分隔线就好了。 但问题是: 图像没有正确对齐中心,这是由我的垂直分隔线(线性布局)造成的。 以下是我的示例代码: <TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:stretchColumns="*" and

以下是我的Android应用程序布局

我试过桌子的布局, 如果我不加垂直分隔线就好了。 但问题是: 图像没有正确对齐中心,这是由我的垂直分隔线(线性布局)造成的。 以下是我的示例代码:

<TableLayout android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:stretchColumns="*"
             android:layout_centerHorizontal="true"
             android:id="@+id/tableexample"

             android:showDividers="middle" android:divider="?android:attr/dividerVertical"
             android:layout_weight="1">
    <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/tableRowContainer1"
            >

        <LinearLayout  android:layout_width="0dp" android:orientation="vertical"
                         android:layout_height="fill_parent"

                         android:layout_weight="1"
                         android:id="@+id/tableRowLayout1"
                         android:layout_centerHorizontal="true"
                         android:paddingTop="@dimen/example_list_padding"
                         >

            <ImageButton android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:id="@+id/exampleImg1"
                         android:background="@android:color/transparent"
                         android:src="@drawable/reconstruct_icon01"/>
            <TextView android:layout_width="match_parent" android:layout_height="wrap_content"
                       android:textColor="@color/example_list_color"
                      android:layout_centerHorizontal="true" android:textSize="@dimen/example_font_size"

                      android:text="Caption1" android:layout_below="@id/exampleImg1"
                    />

        </LinearLayout>


        <LinearLayout  android:layout_width="1dp" android:layout_height="wrap_content"
                       android:orientation="vertical" android:minWidth="1dp"
                       android:gravity="center"
                       android:id="@+id/tableRowDivider1">
            <View
                    style="@style/Divider"
                    />
        </LinearLayout>
        <LinearLayout  android:layout_width="0dp" android:orientation="vertical"
                         android:layout_height="fill_parent"
                         android:gravity="center_horizontal"
                         android:paddingTop="@dimen/example_list_padding"
                        >

            <ImageButton android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:id="@+id/exampleImg2"
                         android:background="@android:color/transparent"
                         android:src="@drawable/reconstruct_icon02"/>
            <TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
                      android:gravity="center_horizontal|center" android:textColor="@color/example_list_color"
                      android:layout_centerHorizontal="true" android:textSize="@dimen/example_font_size"
                      android:text="Caption2" android:layout_below="@id/exampleImg2"
                    />
        </LinearLayout>
    </TableRow>
     <TableRow>
        <TextView android:background="@color/example_list_divider_color" android:layout_height="1dp"
                  android:layout_span="3"
                />
    </TableRow>
   .....
</TableLayout>

.....
顺便说一下,左上角的一个是按程序填充以进行测试。 如果我这样做,图像是正确的位置,但这将导致另一个问题:图像将变换

以下是我真正想要的

渲染此布局的正确方法是什么?
非常感谢

转到栅格视图。这很容易,你会实现你想要的,而且,它在所有屏幕尺寸上都受支持。请参阅:

转到栅格视图。这很容易,你会实现你想要的,而且,它在所有屏幕尺寸上都受支持。参考:

我不确定,但请看一下我的布局,我希望它能对您有所帮助

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_container"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:background="@android:color/darker_gray"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <TableLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1" >

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1" >

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:orientation="vertical" >

                    <ImageView
                        android:id="@+id/imageView1"
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/ic_launcher" />

                    <TextView
                        android:id="@+id/myPRsTextView"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="5dp"
                        android:fontFamily="sans-serif-light"
                        android:gravity="center"
                        android:textColor="@android:color/white"
                        android:text="My PRs"
                         />
                </LinearLayout>

                <View
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_marginLeft="5dp"
                    android:layout_marginRight="5dp"
                    android:layout_weight="0.03"
                    android:background="@android:color/white" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:orientation="vertical" >

                    <ImageView
                        android:id="@+id/imageView1"
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/ic_launcher" />

                    <TextView
                        android:id="@+id/workoutsTextView"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:fontFamily="sans-serif-light"
                        android:layout_marginTop="5dp"
                        android:textColor="@android:color/white"
                        android:gravity="center"
                        android:text="Workouts"
                        />
                </LinearLayout>
            </TableRow>

            <TableRow
                  android:layout_width="wrap_content"
                android:layout_height="wrap_content">

                <View
                    android:id="@+id/divider"
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_marginLeft="5dp"
                    android:layout_weight="1"
                    android:background="@android:color/white" />

                <View
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.03"
                    android:background="@android:color/white" />

                <View
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_marginRight="5dp"
                    android:layout_weight="1"
                    android:background="@android:color/white" />
            </TableRow>

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1" >
                 <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:orientation="vertical" >

                    <ImageView
                        android:id="@+id/imageView1"
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/ic_launcher" />
                <TextView
                    android:id="@+id/tv3"
                    android:layout_height="wrap_content"
                    android:layout_width="match_parent"
                    android:fontFamily="sans-serif-light"
                    android:textColor="@android:color/white"
                    android:gravity="center"
                    android:text="Timers"
                    android:layout_marginTop="5dp"/>
                </LinearLayout>

                <View
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_marginLeft="5dp"
                    android:layout_marginRight="5dp"
                    android:layout_weight="0.03"
                    android:background="@android:color/white" />

                 <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:orientation="vertical" >

                    <ImageView
                        android:id="@+id/imageView1"
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/ic_launcher" />
                <TextView
                    android:id="@+id/tv4"
                    android:layout_height="wrap_content"
                    android:layout_width="match_parent"
                    android:fontFamily="sans-serif-light"
                    android:gravity="center"
                    android:text="Statistics"
                    android:textColor="@android:color/white"
                    android:layout_marginTop="5dp"/>
                </LinearLayout>
            </TableRow>

            <TableRow
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <View
                    android:id="@+id/divider"
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_weight="1"
                    android:background="@android:color/white" />

                <View
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.03"
                    android:background="@android:color/white" />

                <View
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_weight="1"
                    android:background="@android:color/white" />
            </TableRow>

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1" >

                 <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:orientation="vertical" >

                    <ImageView
                        android:id="@+id/imageView1"
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/ic_launcher" />
                <TextView
                    android:id="@+id/tv5"
                    android:layout_height="wrap_content"
                    android:layout_width="match_parent"
                    android:fontFamily="sans-serif-light"
                    android:gravity="center"
                    android:text="Box Locator"
                    android:textColor="@android:color/white"
                    android:layout_marginTop="5dp"/>
                </LinearLayout>

                <View
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_marginLeft="5dp"
                    android:layout_marginRight="5dp"
                    android:layout_weight="0.03"
                    android:background="@android:color/white" />

                 <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:orientation="vertical" >

                    <ImageView
                        android:id="@+id/imageView1"
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/ic_launcher" />
                <TextView
                    android:id="@+id/tv6"
                    android:layout_height="wrap_content"
                    android:layout_width="match_parent"
                    android:fontFamily="sans-serif-light"
                    android:gravity="center"
                    android:text="Something"
                    android:textColor="@android:color/white"
                    android:layout_marginTop="5dp"/>
                </LinearLayout>
            </TableRow>

            <TableRow
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <View
                    android:id="@+id/divider"
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_weight="1"
                    android:background="@android:color/white" />

                <View
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.03"
                    android:background="@android:color/white" />

                <View
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_weight="1"
                    android:background="@android:color/white" />
            </TableRow>

        </TableLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="3"
            android:gravity="center"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="This area is decorative image"
                android:textColor="@android:color/white"
                android:textAppearance="?android:attr/textAppearanceLarge" />

        </LinearLayout>

    </LinearLayout>

</FrameLayout>

我不确定,但看看我的布局,我希望它能帮助您

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_container"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:background="@android:color/darker_gray"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <TableLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1" >

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1" >

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:orientation="vertical" >

                    <ImageView
                        android:id="@+id/imageView1"
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/ic_launcher" />

                    <TextView
                        android:id="@+id/myPRsTextView"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="5dp"
                        android:fontFamily="sans-serif-light"
                        android:gravity="center"
                        android:textColor="@android:color/white"
                        android:text="My PRs"
                         />
                </LinearLayout>

                <View
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_marginLeft="5dp"
                    android:layout_marginRight="5dp"
                    android:layout_weight="0.03"
                    android:background="@android:color/white" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:orientation="vertical" >

                    <ImageView
                        android:id="@+id/imageView1"
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/ic_launcher" />

                    <TextView
                        android:id="@+id/workoutsTextView"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:fontFamily="sans-serif-light"
                        android:layout_marginTop="5dp"
                        android:textColor="@android:color/white"
                        android:gravity="center"
                        android:text="Workouts"
                        />
                </LinearLayout>
            </TableRow>

            <TableRow
                  android:layout_width="wrap_content"
                android:layout_height="wrap_content">

                <View
                    android:id="@+id/divider"
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_marginLeft="5dp"
                    android:layout_weight="1"
                    android:background="@android:color/white" />

                <View
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.03"
                    android:background="@android:color/white" />

                <View
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_marginRight="5dp"
                    android:layout_weight="1"
                    android:background="@android:color/white" />
            </TableRow>

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1" >
                 <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:orientation="vertical" >

                    <ImageView
                        android:id="@+id/imageView1"
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/ic_launcher" />
                <TextView
                    android:id="@+id/tv3"
                    android:layout_height="wrap_content"
                    android:layout_width="match_parent"
                    android:fontFamily="sans-serif-light"
                    android:textColor="@android:color/white"
                    android:gravity="center"
                    android:text="Timers"
                    android:layout_marginTop="5dp"/>
                </LinearLayout>

                <View
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_marginLeft="5dp"
                    android:layout_marginRight="5dp"
                    android:layout_weight="0.03"
                    android:background="@android:color/white" />

                 <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:orientation="vertical" >

                    <ImageView
                        android:id="@+id/imageView1"
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/ic_launcher" />
                <TextView
                    android:id="@+id/tv4"
                    android:layout_height="wrap_content"
                    android:layout_width="match_parent"
                    android:fontFamily="sans-serif-light"
                    android:gravity="center"
                    android:text="Statistics"
                    android:textColor="@android:color/white"
                    android:layout_marginTop="5dp"/>
                </LinearLayout>
            </TableRow>

            <TableRow
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <View
                    android:id="@+id/divider"
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_weight="1"
                    android:background="@android:color/white" />

                <View
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.03"
                    android:background="@android:color/white" />

                <View
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_weight="1"
                    android:background="@android:color/white" />
            </TableRow>

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1" >

                 <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:orientation="vertical" >

                    <ImageView
                        android:id="@+id/imageView1"
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/ic_launcher" />
                <TextView
                    android:id="@+id/tv5"
                    android:layout_height="wrap_content"
                    android:layout_width="match_parent"
                    android:fontFamily="sans-serif-light"
                    android:gravity="center"
                    android:text="Box Locator"
                    android:textColor="@android:color/white"
                    android:layout_marginTop="5dp"/>
                </LinearLayout>

                <View
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_marginLeft="5dp"
                    android:layout_marginRight="5dp"
                    android:layout_weight="0.03"
                    android:background="@android:color/white" />

                 <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:orientation="vertical" >

                    <ImageView
                        android:id="@+id/imageView1"
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:src="@drawable/ic_launcher" />
                <TextView
                    android:id="@+id/tv6"
                    android:layout_height="wrap_content"
                    android:layout_width="match_parent"
                    android:fontFamily="sans-serif-light"
                    android:gravity="center"
                    android:text="Something"
                    android:textColor="@android:color/white"
                    android:layout_marginTop="5dp"/>
                </LinearLayout>
            </TableRow>

            <TableRow
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <View
                    android:id="@+id/divider"
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_weight="1"
                    android:background="@android:color/white" />

                <View
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.03"
                    android:background="@android:color/white" />

                <View
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_weight="1"
                    android:background="@android:color/white" />
            </TableRow>

        </TableLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="3"
            android:gravity="center"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="This area is decorative image"
                android:textColor="@android:color/white"
                android:textAppearance="?android:attr/textAppearanceLarge" />

        </LinearLayout>

    </LinearLayout>

</FrameLayout>


TextView上的重力标记没有意义,H和W设置为包裹内容。我不完全理解这个问题,是因为方框(在第一张图中)没有对齐吗?是的,你是对的。我没有移除一些未使用的标签。如果我移除垂直分隔符,图像将居中对齐。TextView上的重力标记毫无意义,H和W设置为包裹内容。我不完全理解这个问题,是因为方框(在第一张图中)没有对齐吗?是的,你是对的。我没有移除一些未使用的标签。如果我移除垂直分隔线,图像将居中对齐。感谢Kailas,从您的回答中,我从这里得到了类似的答案:,我将尝试此。感谢Kailas,从您的回答中,我从这里得到了类似的答案:,我将尝试此。此示例非常符合我的期望。谢谢。这个例子完全符合我的期望。非常感谢。