2011-01-12 69 views
1

我正在使用帶標籤界面的pandroid應用程序,並且在每個選項卡中我想以網格格式顯示文本以及一些操縱數據的控件。現在我正在使用單個表格佈局,但問題是要使格式與顯示文本和控件一起工作。控件最終會影響文本列的寬度。這裏有一個截圖: http://www.pikefin.com/img/emulator.png關於表格佈局的問題

我想知道是否有可能得到兩個表格佈局在同一個屏幕上工作? (我玩過這個,但不能得到它的工作)

或者我應該考慮採取一種完全不同的方法?

回答

1

你可能應該使用ListView來處理你的表格。這將破壞數據表和按鈕之間的依賴關係。然後使用RelativeLayout在相對佈局中佈置按鈕和ListView。

這樣做的最大原因是內存消耗。如果你的表中有更多的數據比你能看到的多,那麼ListView將只消耗顯示可見行所需的內存。無論TableLayout是否可見,TableLayout都將消耗內存來顯示全部數據量。此外,ListView會自動給你選擇,所以你只需在ListView上註冊一個選擇監聽器,就是這樣。它是爲你寫的。你的桌面佈局需要你自己寫。你也可以有真實的模型支持你的用戶界面,這樣你就可以得到一個表示表格中某一行的特定對象。

棘手的部分是讓行正確佈局。爲此,您必須具有固定寬度的列,您可以從現有的TableLayout中派生出固定寬度的列。這聽起來像是一個限制,但是當你在移動設備上時,你通常沒有太多的房地產,所以給每一列固定的金額確保每個人的佈局如預期。

0

那麼,對於第一個問題。您可能會發現將所有組件的寬度設置爲0px是有好處的。然後將權重設置爲百分比的十進制表示(例如,對於20%爲0.2)。

<TextView 
    android:layout_width="0px" 
    android:layout_height="wrap_content" 
    android:layout_weight="0.2" 
    android:text="Your Text" 
/> 

至於你的第二個問題,你可以在你的佈局中有任意多的TableLayouts。可能是您的其他TableLayout存在於當前的TableLayout下方。您可能需要將您的TableLayouts放在ScrollLayout系統中,以便您可以在它們之間滾動。