2013-04-29 99 views
3

我有一個非常複雜的ListView元素。當用戶向下滾動(例如第5個元素)時,我隱藏ActionBar(通過hide()方法)爲ListView提供更多空間。看起來像當我這樣做時,android框架調用類似redraw方法來將ListView的內容縮放到更大的空間。這種縮放比例在運行時發生,沒有任何內置動畫。而且,對於複雜的佈局(如我的),重繪對視圖提供了醜陋的閃爍效果,從而改變了自己的位置或大小。看起來這種行爲使得大多數情況下動態佈局更改不可用。有沒有人有任何想法如何解決這個問題?可能有一些棘手的方法來爲這種重繪提供動畫嗎?在運行時調整佈局大小時閃爍內容

P.S.我剛剛試過android:animateLayoutChanges="true",但沒有效果。視圖看起來更平滑,但眨眼仍然在這裏..

回答

3

當你擺脫了動作欄,你現在有更多的可視空間來繪製。這會導致框架調整活動中的所有視圖。這與將VISIBLE中的任何視圖的可見性更改爲GONE(將其更改爲INVISIBLE不會導致重繪,因爲該空間仍保留)相同。

爲了避免這 - 從ActionBar.show()的文檔

顯示的動作條,如果目前無法顯示。如果託管動作條的窗口不具備的功能FEATURE_ACTION_BAR_OVERLAY它會調整應用程序內容以適應新的可用空間 「

因此您需要指定該功能。然後,您可能需要調整視圖,以便操作欄不會覆蓋任何要顯示的內容。

+0

謝謝@Gabe Sechan,它看起來像工作解決方案(但當然可以只適用於ActionBar)。 – fraggjkee 2013-06-25 08:53:23

0

檢查這個解決方法可能對您有所幫助

還需要緩存的顏色提示設置爲黑色,在XML中,可能適合你的要求Listview

android:cacheColorHint="#000000" 
0

一種解決方案是有一個自定義標題視圖而不是動作欄,將此標題視圖添加爲列表標題,並且將滾動顯示列表&將更有效地使用屏幕空間。

相關問題