2012-04-18 49 views
0

我是Android開發新手,所以如果這是一個noob問題,請原諒我!我試圖顯示一個包含2列的表。第二列應該右對齊,但可以是固定寬度。第一列應該伸展以填充任何剩餘的空間。我有一個非常簡單的表格佈局,但它將第二列的文本從屏幕邊緣推出,因此您無法閱讀它。Android:爲什麼我的列標題被推離屏幕邊緣?

這裏是佈局的XML:

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tbl_my_tanks" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:stretchColumns="0"> 

    <TableRow android:padding="3dip"> 
     <TextView 
      android:id="@+id/col_tank_name" 
      android:text="@string/tanks_tank_name" /> 

     <TextView 
      android:id="@+id/col_stock_level" 
      android:gravity="right" 
      android:text="@string/tanks_stock_level" /> 

    </TableRow> 

</TableLayout> 

...這是個什麼樣子,當我運行它,如:

Text disappears off right hand edge of screen in Android

我怎樣才能得到它對齊正確嗎? (我嘗試使用android:layout_gravity =「right」,但這沒有什麼區別)。

回答

2

如果您從表格行中刪除填充,應該沒問題。請嘗試使用保證金。

+0

謝謝,刪除填充確實會阻止它溢出。雖然沒有android:margin屬性,並且android:layout_margin再次導致溢出問題。所以我仍然無法找到任何讓它使用一點填充的方法。儘管如此,沒有填充比溢出更好,所以我可以忍受它。 – Russ 2012-04-18 16:07:40

0

根據api文檔,tablerow應該總是一個tablelayout的孩子,也許這就是爲什麼它表現時髦?

+0

有一個tablelayout--我粘貼了整個xml,但是stackoverflow似乎已經刪除了一些!或者我可能意外刪除了它 - 我會嘗試編輯該問題以糾正。 – Russ 2012-04-18 15:48:38

+0

填充單位'dip'應該是'dpi'?可能不是原因,但如果在xml中存在拼寫錯誤,則可能需要修復它... – 2012-04-18 16:09:35

+0

此刻,我無法想出任何其他原因,因爲這不起作用,原因是父項在屏幕邊界之外延伸...可能想檢查... – 2012-04-18 16:15:24

0

我有同樣的問題。 有時它固定,通過增加尺寸相同右緣至行的最後一列補償剪輯:

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tbl_my_tanks" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:stretchColumns="0"> 
    <TableRow android:padding="3dip"> 
     <TextView 
      android:id="@+id/col_tank_name" 
      android:text="@string/tanks_tank_name" /> 
     <TextView 
      android:id="@+id/col_stock_level" 
      android:gravity="right" 
      android:layout_marginRight="3dip" 
      android:text="@string/tanks_stock_level" /> 

    </TableRow> 
</TableLayout> 

如果仍然裁剪,然後只需添加行填充邊距上的每一列行。