2012-11-26 84 views
0

幫我請Android的重新佈局問題

我的XML佈局是這樣的

<LinearLayout width=fill height=wrap orient=horizontal> 
    <LinearLayout width=0 height=wrap weight=1>...</> 
    <LinearLayout width=0 height=wrap weight=1>...</> 
    <LinearLayout width=0 height=wrap weight=1>...</> 
    <LinearLayout width=wrap height=wrap weight=0>...</> 
</LinearLayout> 

該充氣main.xml不正是我需要的 - 在屏幕上均勻分佈的四組。

但是當我以[例如]第二個子佈局可見性GONE開始活動並在運行時將其設置爲VISIBLE時,整個根/父佈局看起來非常糟糕。子視圖[從子圖層]混亂,看起來像他們的立場沒有重新計算,以考慮到新的linearlayout成爲可見。

requestLayout()forceLayout()沒有幫助。

如何讓根佈局與剛剛啓動時的功能相同?

+0

當你的代碼或佈局有問題時,那麼「僞代碼」不是一個好主意。在此發佈您正在使用的確切佈局。 –

回答

0
<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" 
    android:weightSum="4"> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1">........</LinearLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1">........</LinearLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1">........</LinearLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1">........</LinearLayout> 

</LinearLayout> 
+0

設置android:weightSum真的很有趣,我會用它。謝謝)) – mjollneer

+0

你的歡迎:) –

0

畢竟我得到它的作品。現在所有更新都正確,但我想這不是真正的解決方案。我只是將代碼重新計算佈局可見性,然後手動將代碼移動到onWindowFocusChanged回調並在代碼中設置android:weightSum。 相信onSizeChanged回調也可能有所幫助。