2011-03-04 60 views
2

讓我解釋一下,我想實現的方案:-

考慮下面的佈局我有一個Parent_Linearlayout內:

如何限制翻譯動畫在Android中的視圖?

[線性佈局](FILL_PARENT,WRAP_CONTENT)
[滾動型]

活性的的setContentView設置爲Parent_Linearlayout

在應用程序中,當滿足條件時,我希望滾動視圖從屏幕上移除,而將其他視圖放在其位置。

我已經能夠做到這一點,&當我刪除了滾動,我在申請,以便它好像在查看已經頂端-before刪除它翻譯動畫吧。
但是,當動畫發生時,ScrollView將在其上方呈現的線性佈局轉換爲OVER。

如何限制它,以便scrollview不會超過線性佈局,但會消失在Linearlayout的底部。我想要linearlayout始終保持可見..

我一直在試圖從相當一段時間這樣做,但我一直沒能得到預期的結果.. 有人可以幫我在這裏?

回答

1

我不太瞭解你對佈局的描述,但Android視圖系統是根據層次結構中視圖的排序繪製的。稍後添加到父級的視圖會在之前添加的視圖之後繪製。因此,如果您始終希望將LinearLayout繪製在ScrollView的頂部(如果/它們重疊),則可以在LinearLayout對象之前聲明或添加ScrollView對象。

在思考更多關於這個問題時,我想這裏的排序很重要,因爲您希望將ScrollView放置在這兩個視圖的父項的LinearLayout下方。先將ScrollView放在第一位(然後先將其繪製),然後將其放在另一個LinearLayout的上方,這不是您想要的。 有很多方法可以實現你想要的。例如,您可以使用RelativeLayout作爲視圖的父級,那麼排序並不重要。 或者,您可以將ScrollView放置在另一個LinearLayout中(並且該LinearLayout將是整個父佈局的第二個子節點)。然後,當你爲ScrollView設置動畫時,它會被它的直接父對象剪裁,我相信它會給你你正在尋找的效果(確保setClipChildren()在這個新的中間LinearLayout上設置爲true,默認情況下,否則它不會剪輯ScrollView,因爲它會從中移出)。請注意,這種方法將需要不同的動畫值,因爲您現在將其視圖的外部動畫視圖(新的LinearLayout)。

+0

這是一個我不得不快速解決的問題,因爲我無法得到我想要的東西,所以我決定使用ScaleAnimation來縮放視圖,並使用scrollview頂部的透視圖來縮放視圖。 但是,無論如何感謝您的信息。我會記住有關setClipChildren()方法..它可能在將來證明是有用的。 :) –