2012-07-21 46 views
0

說我有一個垂直LinearLayout和幾個TextView s在其中layout_height設置爲wrap_content。 這樣,最後的TextView成爲底部剪短 Last view is clipped縮小Widget,如果它們不適合LinearLayout

設置每個TextViewlayout_height="match_parent"layout_weight="1"「解決」這個問題:Does fit into the screen

不幸的是,這導致portrait layout視圖之間非常大間隔:Large intervals between TextView

那麼,有沒有什麼辦法可以安排在屏幕上的項目,以便:

  1. 它們都適合屏幕
  2. 如果屏幕很大,它們應該被放置在一個個沒有巨大空間的地方,然而,底部有空閒空間 ?

非常感謝。

回答

1

這是您應該爲不同配置使用不同佈局資源的情況之一。例如,根據您的示例,您可以在手機處於橫向模式時使用layout-land文件夾,並且在該佈局中使用xml佈局,其中所有TextViews都有layout_weight="1"。對於縱向(與默認佈局),你可以在你的layout文件夾一樣從layout-land一來,你會在TextViews後添加此元素的佈局文件:

<View   
     android:layout_width="wrap_content" 
     android:layout_weight="3" 
     android:layout_height="0dp" /> 

這個空View將「吸收」一些空的空間讓你在TextViews之間沒有很大差距。

不同屏幕的不同佈局文件可以通過對不同尺寸(正常,大型,非常大)與不同方向(縱向與橫向)結合的屏幕進一步改進佈局得到改進。

當然,你可以編寫自己的佈局管理器來定位孩子TextViews,但這不是一件容易的事情。

+0

好的,謝謝你的回覆。然而,我仍然覺得這樣簡單的佈局要求不能在單個資源中完成。 – Ixanezis 2012-08-02 18:43:16

相關問題