Android xml 中的居中 TableLayout 行

发布于 2024-12-22 04:26:04 字数 3693 浏览 1 评论 0原文

我试图在表格行的中心对齐 2 个按钮,无论屏幕分辨率如何,所以我试图避免使用指定的边距。 这是我的代码,它仅适用于声明的边距,并且我正在使用重力和布局重力......对我来说没有任何作用。它们没有在中心对齐。 有人有想法吗?不管怎样,谢谢。

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
         >

        <TableLayout
            android:id="@+id/TableLayout01"
            android:layout_gravity="center"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="100px"
            android:stretchColumns="1" >

            <TableRow
                android:id="@+id/TableRow01"
                android:layout_gravity="center"
                android:paddingLeft="50dip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <Button
                    android:id="@+id/image1Btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@android:color/transparent"
                    android:drawablePadding="-5sp"
                    android:drawableTop="@drawable/image1"
                    android:gravity="center"
                    android:src="@drawable/image1"
                    android:text="@string/image1text"
                    android:textColor="@color/darkgrey" />

               <Button
                    android:id="@+id/image2Btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@android:color/transparent"
                    android:drawablePadding="-5sp"
                    android:drawableTop="@drawable/image2"
                    android:gravity="center"
                    android:src="@drawable/image2"
                    android:text="@string/image2text"
                    android:textColor="@color/darkgrey" />
            </TableRow>

            <TableRow
                android:id="@+id/TableRow02"
                android:paddingLeft="50dip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

               <Button
                    android:id="@+id/image3Btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@android:color/transparent"
                    android:drawablePadding="-5sp"
                    android:drawableTop="@drawable/image3"
                    android:gravity="center"
                    android:src="@drawable/image3"
                    android:text="@string/image3text"
                    android:textColor="@color/darkgrey" />

                <Button
                    android:id="@+id/image4Btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@android:color/transparent"
                    android:drawablePadding="-5sp"
                    android:drawableTop="@drawable/image4"
                    android:gravity="center"
                    android:src="@drawable/image4"
                    android:text="@string/image4text"
                    android:textColor="@color/darkgrey" />
            </TableRow>
        </TableLayout>
    </RelativeLayout>
</ScrollView>

I am trying to align in the center 2 buttons in a table row, no matter the screen resolution, so i am trying to avoid using specified margins.
This is my code, it works only with declared margins, and i am using gravity and layout gravity...nothing worked for me. They did not align in the center.
Does anyone have an idea? Thanks anyway.

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
         >

        <TableLayout
            android:id="@+id/TableLayout01"
            android:layout_gravity="center"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="100px"
            android:stretchColumns="1" >

            <TableRow
                android:id="@+id/TableRow01"
                android:layout_gravity="center"
                android:paddingLeft="50dip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <Button
                    android:id="@+id/image1Btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@android:color/transparent"
                    android:drawablePadding="-5sp"
                    android:drawableTop="@drawable/image1"
                    android:gravity="center"
                    android:src="@drawable/image1"
                    android:text="@string/image1text"
                    android:textColor="@color/darkgrey" />

               <Button
                    android:id="@+id/image2Btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@android:color/transparent"
                    android:drawablePadding="-5sp"
                    android:drawableTop="@drawable/image2"
                    android:gravity="center"
                    android:src="@drawable/image2"
                    android:text="@string/image2text"
                    android:textColor="@color/darkgrey" />
            </TableRow>

            <TableRow
                android:id="@+id/TableRow02"
                android:paddingLeft="50dip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

               <Button
                    android:id="@+id/image3Btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@android:color/transparent"
                    android:drawablePadding="-5sp"
                    android:drawableTop="@drawable/image3"
                    android:gravity="center"
                    android:src="@drawable/image3"
                    android:text="@string/image3text"
                    android:textColor="@color/darkgrey" />

                <Button
                    android:id="@+id/image4Btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@android:color/transparent"
                    android:drawablePadding="-5sp"
                    android:drawableTop="@drawable/image4"
                    android:gravity="center"
                    android:src="@drawable/image4"
                    android:text="@string/image4text"
                    android:textColor="@color/darkgrey" />
            </TableRow>
        </TableLayout>
    </RelativeLayout>
</ScrollView>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

薄暮涼年 2024-12-29 04:26:04

将按钮放在几个 LinearLayout 中,而不是放在 TableRow 中。

<TableLayout
    ...
    >

    <LinearLayout
        android:orientation="vertical"
        >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_gravity="center"
            >

            <Button
                android:id="@+id/image1Btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@android:color/transparent"
                android:drawablePadding="-5sp"
                android:drawableTop="@drawable/image1"
                android:src="@drawable/image1"
                android:text="@string/image1text"
                android:textColor="@color/darkgrey" />

            <Button
                android:id="@+id/image2Btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@android:color/transparent"
                android:drawablePadding="-5sp"
                android:drawableTop="@drawable/image2"
                android:src="@drawable/image2"
                android:text="@string/image2text"
                android:textColor="@color/darkgrey" />

        </LinearLayout>
    </LinearLayout>

    ...
</TableLayout>

外部 LinearLayout 将拉伸至 TableLayout 的宽度,并通过 TableLayout 将其高度设置为 wrap_content。内部 LinearLayout 将在外部 LinearLayout 中水平居中,因为后者是垂直方向的。

Put your buttons in a couple of LinearLayouts instead of a TableRow.

<TableLayout
    ...
    >

    <LinearLayout
        android:orientation="vertical"
        >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_gravity="center"
            >

            <Button
                android:id="@+id/image1Btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@android:color/transparent"
                android:drawablePadding="-5sp"
                android:drawableTop="@drawable/image1"
                android:src="@drawable/image1"
                android:text="@string/image1text"
                android:textColor="@color/darkgrey" />

            <Button
                android:id="@+id/image2Btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@android:color/transparent"
                android:drawablePadding="-5sp"
                android:drawableTop="@drawable/image2"
                android:src="@drawable/image2"
                android:text="@string/image2text"
                android:textColor="@color/darkgrey" />

        </LinearLayout>
    </LinearLayout>

    ...
</TableLayout>

The outer LinearLayout will be stretched to the width of the TableLayout and have its height set to wrap_content by TableLayout. The inner LinearLayout will be centered horizontally in the outer LinearLayout because the latter is vertically oriented.

嘿看小鸭子会跑 2024-12-29 04:26:04
 <LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent"  android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:background="@drawable/wood">
      <ScrollView android:id="@+id/ScrollView01" android:layout_width="fill_parent" android:layout_height="fill_parent">
           <AbsoluteLayout android:id="@+id/absoluteLayout1" android:layout_width="match_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:paddingLeft="10dp" android:paddingRight="10dp">
                 <TableLayout android:id="@+id/tableLayout0" android:background="@drawable/my_border" android:layout_width="fill_parent" android:layout_y="150dp" android:layout_height="match_parent">
                     <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1" android:layout_width="wrap_content">
                         <TextView android:id="@+id/EmailID" android:text="EmailID" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/my_border2" android:textStyle="bold" android:layout_weight="1"></TextView>
                         <EditText android:id="@+id/txtEmailID" android:layout_width="150dp" android:background="@drawable/my_border1" android:layout_height="wrap_content" android:layout_weight="1">
                             <requestFocus></requestFocus>
                         </EditText>
                     </TableRow>
                     <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow6" android:layout_width="wrap_content" android:paddingTop="20dp">
                         <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="Cancel"></Button>
                         <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="Login"></Button>
                     </TableRow>
                </TableLayout>

         </AbsoluteLayout>  
      </ScrollView> 
  </LinearLayout>
 <LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent"  android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:background="@drawable/wood">
      <ScrollView android:id="@+id/ScrollView01" android:layout_width="fill_parent" android:layout_height="fill_parent">
           <AbsoluteLayout android:id="@+id/absoluteLayout1" android:layout_width="match_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:paddingLeft="10dp" android:paddingRight="10dp">
                 <TableLayout android:id="@+id/tableLayout0" android:background="@drawable/my_border" android:layout_width="fill_parent" android:layout_y="150dp" android:layout_height="match_parent">
                     <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1" android:layout_width="wrap_content">
                         <TextView android:id="@+id/EmailID" android:text="EmailID" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/my_border2" android:textStyle="bold" android:layout_weight="1"></TextView>
                         <EditText android:id="@+id/txtEmailID" android:layout_width="150dp" android:background="@drawable/my_border1" android:layout_height="wrap_content" android:layout_weight="1">
                             <requestFocus></requestFocus>
                         </EditText>
                     </TableRow>
                     <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow6" android:layout_width="wrap_content" android:paddingTop="20dp">
                         <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="Cancel"></Button>
                         <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="Login"></Button>
                     </TableRow>
                </TableLayout>

         </AbsoluteLayout>  
      </ScrollView> 
  </LinearLayout>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文