Android:无法将TableLayout的重力设置为Right

时间:2010-09-26 14:52:11

标签: android

我知道有很多关于这个的问题已经浮现在SO周围但是我已经阅读了很多问题,仍然无法让我的第3列与右边对齐。

<?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"
  android:orientation="horizontal"
  android:background="#FFFFFF"
  android:stretchColumns="2"
 >
  <TableRow>

 <ImageView 
  android:src="@drawable/blue_light" 
  android:layout_height="48px" 
  android:layout_width="48px" 
  android:padding="3dp"
  android:layout_margin="3dp"
  android:layout_column="1"/>   

   <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_marginLeft="10px"
   android:layout_gravity="center_vertical"
   android:layout_column="2">

   <TableRow>
    <TextView 
     android:id="@+id/row_title"  
     android:textColor="#000000" 
     android:layout_width="wrap_content" 
      android:layout_height="wrap_content"  
      android:textStyle="bold" />
   </TableRow>

   <TableRow>
    <TextView 
     android:id="@+id/row_author"  
     android:layout_width="wrap_content"
      android:layout_height="wrap_content" 
      android:textColor="#9E9E9E"  
      android:textStyle="italic|bold"/>
   </TableRow>

   </TableLayout>

   <TableLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_column="3"
    android:layout_gravity="center_vertical|right"
  android:gravity="center_vertical|right"
   >

   <TableRow>
    <TextView 
     android:textColor="#1F9C29" 
     android:textSize="15dp" 
     android:id="@+id/row_txt1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textStyle="bold" />
   </TableRow>

   <View
    android:layout_height="1dp"
    android:background="#000000"
    android:layout_marginRight="3dp"
    />

   <TableRow>
    <TextView 
     android:textColor="#1B27D1" 
     android:id="@+id/row_txt2"
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textStyle="bold"/>
   </TableRow>

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

我做错了什么?

2 个答案:

答案 0 :(得分:5)

  

无法使我的第3列与右侧对齐。

关闭袖口,我怀疑嵌套的TableLayout小部件不能很好地工作。虽然TableLayout旨在模仿HTML表格“API”,但类比仍有限制。

如果您希望“第3列与右侧对齐”,请将所有内容放入外部TableLayout,然后在该列中的所有小部件上尝试android:layout_gravity="right"

答案 1 :(得分:0)

我遇到了同样的问题,并通过以下方式解决了这个问题:

在TableRow属性中添加以下两行:

android:layout_gravity="center"
android:gravity="right"

如果您使用Layout_gravity = right,由于某种原因它根本不起作用。 请享用, 阿德里安。