如何在android表格布局中右侧放置图标?

时间:2012-02-12 09:13:52

标签: android android-layout

我使用tablelayout而不是自定义标题标题栏

现在我的布局就像我在下面显示的xml一样,我想把2图标和文本对齐,但是当我使用android:layout_gravity="right"它似乎不起作用时,我怎么能这样做?

这是我的布局xml:

  < ? 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" >    
        <TableLayout
            android:id="@+id/tableLayout1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:background="#4494D1" >

            <TableRow
                android:id="@+id/tableRow1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="right" >

                <LinearLayout
                    android:id="@+id/linearLayout3"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >

                    <TextView

                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:text="简易尺子" 
                        android:textColor="#fff"
                        android:textSize="25dp"
                        android:layout_marginTop="5dp"
                         android:layout_marginLeft="15dp"
                        />

                </LinearLayout>

                <LinearLayout
                    android:id="@+id/linearLayout1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" 

                    >

                    <ImageButton
                        android:id="@+id/imageButton1"
                        android:layout_width="28dp"
                        android:layout_height="28dp"
                        android:background="@drawable/android2"
                        android:layout_marginLeft="15dp"
                        android:layout_marginRight="15dp"
                        android:layout_marginTop="5dp"/>

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:text="关于"
                        android:textColor="#fff" />

                </LinearLayout>

                <LinearLayout
                    android:id="@+id/linearLayout2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="right"
                    android:orientation="vertical" >

                    <ImageButton
                        android:id="@+id/imageButton2"
                        android:layout_width="28dp"
                        android:layout_height="28dp"
                        android:background="@drawable/programs" 
                        android:layout_marginLeft="15dp"
                        android:layout_marginRight="15dp"
                        android:layout_marginTop="5dp" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:text="帮助"
                        android:textColor="#fff" />

                </LinearLayout>
            </TableRow>
        </TableLayout>

    <SurfaceView
        android:layout_width="match_parent"
        android:id="@+id/surfaceView1"
        android:layout_height="match_parent">
    </SurfaceView>
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

您设置的布局重力不会影响TableRow中TextViewImageView的位置,而是将它们放置在包裹LinearLayout中,这不是什么你需要。我建议您为TableLayout定义以下属性:

<TableLayout
    android:layout_width="fill_parent"
    android:layout_width="wrap_content"
    android:stretchColumns="0,1">

这将使原始扩展的前两列缩小,从而将最右边的列缩小到右侧。

注意(重要)目前您没有定义有效的布局:TableRow中有LinearLayout - 这是不允许的 - 您应该将行放入TableLayout就像我定义的那样。

答案 1 :(得分:0)

try this


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >


    <TableLayout
        android:id="@+id/tableLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <TableRow
            android:id="@+id/tableRow3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="5dip" >

            <TextView
                android:id="@+id/textView2"
                android:text="简易尺子"
                android:textAppearance="?android:attr/textAppearanceLarge" />

            <RelativeLayout
                android:id="@+id/relativeLayout2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="right" >

                <ImageButton
                    android:id="@+id/imageButton1"
                    android:layout_width="28dp"
                    android:layout_height="28dp"
                    android:layout_marginRight="10dp"
                    android:layout_toLeftOf="@+id/imageButton2" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/imageButton1"
                    android:layout_marginRight="10dp"
                    android:layout_toLeftOf="@+id/text2"
                    android:text="关于"
                    android:textColor="#fff" />

                <ImageButton
                    android:id="@+id/imageButton2"
                    android:layout_width="28dp"
                    android:layout_height="28dp"
                    android:layout_alignParentRight="true" />

                <TextView
                    android:id="@+id/text2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentRight="true"
                    android:layout_below="@+id/imageButton2"
                    android:text="帮助"
                    android:textColor="#fff" />
            </RelativeLayout>
        </TableRow>
    </TableLayout>

    <SurfaceView
        android:id="@+id/surfaceView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/tableLayout1" >
    </SurfaceView>

</RelativeLayout>