2011-04-15 101 views
12

我有許多佈局有不同的ViewGroup根(LinearLayouts,RelativeLayouts等)。這些視圖都符合我的期望,但現在我正在嘗試添加頂部導航欄。問題是根可以有不同的填充,如果我簡單地將我的佈局包含在每個佈局中,則導航欄的寬度將受到父級填充的限制。我希望這個導航欄忽略根的左/右/頂部填充,並且在佈局的最頂部是完全全寬。有沒有什麼我可以在導航欄的佈局中做到這一點,或者我註定要修改所有現有的佈局以適應此?android子視圖忽略父填充

回答

3

爲什麼你需要改變所有的佈局?如果只有導航欄需要忽略填充,則可以將導航欄取出當前父級佈局,然後將這兩個佈局放入另一個沒有填充的佈局中。

26

雖然這看起來像是一個非常糟糕的主意,但您可以通過將父ViewGroup的clipToPadding屬性設置爲false,然後在子視圖上設置負邊距來完成要查找的內容。

例子:

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:padding="10dp" 
    android:background="#EEE" 
    android:clipToPadding="false"> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/hello" 
     android:background="#333" 
     android:layout_marginLeft="-10dp" 
     android:layout_marginRight="-10dp" 
     android:layout_marginTop="-10dp"/> 
</LinearLayout> 

上述例子的作品,但我會建議你只要把你的頂部導航欄的ViewGroup這些包含你正在試圖避免墊襯的外面。

+0

它不適合我 – 2014-06-06 08:11:37

+0

不喜歡它,如果喲有一個動態填充?你打算在res文件中添加相同但負值的每個值嗎? – Karoly 2018-02-09 00:18:29