23

在android中,我們可以將片段滑過另一個片段嗎?例如,如下圖中:在Android中將另一個片段滑過另一個片段

image 1

有兩個片段。一個是紅色的,另一個是藍色的。如果用戶將他的手指按在黑色箭頭上並將其向右拖動,紅色的碎片也隨之拖動,從而覆蓋藍色碎片。最後,紅色的片段覆蓋了整個藍色的片段。另外,如果用戶在紅色片段拖動到不到藍色片段的一半之前提起手指,則紅色片段應該回到其原始位置(並且因此不覆蓋藍色片段)。然而,如果用戶不擡起他的手指(即拖動箭頭),直到紅色片段覆蓋超過一半的藍色片段或整個藍色片段,則紅色片段應覆蓋整個藍色片段。

此外,如果在紅色片段上有任何視圖(例如,ButtonsEditTexts等),則它們也將相應地重新調整大小。

有沒有辦法做到這一點?如果是,那麼如何?

+0

你解決了這個問題嗎? – Tushar 2015-03-09 06:03:31

+0

我真的很好奇,你現在是否已經明白...? – Glenn85 2015-09-22 14:20:04

+0

我問這個問題已經很長時間了。我不記得我是如何解決這個問題的,或者我是否解決了這個問題。 – Vaibhav 2015-09-30 05:02:56

回答

2

我想你想要做的就像是最新的Android Market UI?在哪裏可以滑過顯示不同內容的碎片,對吧?

如果這就是它那麼我建議你看看這個網站: http://viewpagerindicator.com/

它是由傑克沃頓這確實你問什麼做的項目。你可以下載它的源代碼來找到自己實現它的方法,或者你可以簡單地使用它作爲一個庫(它也在網站上解釋過)。

有關其他信息,我建議你考慮看看在Android的碎片和FragmentActivity,在這裏不用鏈接到使用兩個片段和FragmentActivity一個例子,但也有很多在互聯網上: http://www.e-nature.ch/tech/?p=6

希望這幫助!

+0

感謝您的回答,雖然這不是我正在尋找的。 ViewpagerIndicator提供了不同的功能。 – Vaibhav 2012-02-21 07:00:47

1

我想不出更簡單的方法......所以嘗試做這樣的:

嘗試使用FrameLayout裏。 添加一個藍色的LinearLayout,之後添加一個紅色的LinearLayout,例如。 然後紅色佈局將是藍色的。

在onTouch偵聽器上添加紅色佈局。 做一些簡單的x和y座標計算,TouchEvent爲您提供了編程設置的紅色佈局LayoutParams,例如寬度。

這是我頭頂的想法,從來沒有嘗試過。

希望能幫助你。 乾杯!

+1

感謝您的回答。我已經嘗試過這種方法,並且運行良好。但它沒有給出平滑的**拖拽方法,即當LayoutParams被重置時屏幕閃爍,並且佈局被重新測量和重新繪製。 – Vaibhav 2012-02-21 06:59:28

4

你看過使用或擴展SlidingDrawer?您可以將紅色碎片作爲抽屜的內容,黑色箭頭作爲手柄。

2

我想你會用一個自定義viewgroup來擴展linearlayout。內部視圖應該具有佈局權重來定義它們的屏幕部分。

您必須重寫自定義視圖組onLayout和onMeassure,請記住,視圖組會調用其子級的測量和佈局以實現平滑重新縮放。

希望它有幫助。

相關問題