2010-06-03 22 views
1

我在寫一個應用程序,允許用戶訪問他們的企業語音郵件系統。語音郵件顯示在列表視圖中,當選擇其中一個時,它們被給予菜單。當用戶選擇「聽」時,我希望小型媒體播放器在現有ListView頂部彈出屏幕底部(類似於軟鍵盤在需要時彈出,然後在完成時離開)。如何在Android中的現有活動之上創建子視圖apear?

選項?

回答

4

將您的所有視圖(即:您的ListView)添加到RelativeLayout中,將您的媒體播放器佈局元素放在底部並將其可見性設置爲消失。

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

    <ListView 
    android:id="@android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    /> 

    <RelativeLayout 
    android:id="@+id/mediaPopup" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:visibility="gone" 
    > 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="I am a media player!" 
     /> 
    </RelativeLayout> 

</RelativeLayout> 

然後在您的活動類,你可以對你的看法動畫這樣的:

function void showMediaPlayer() { 

    if(mMediaPopUp.getVisibility() == View.GONE) { 

    // Show Media Player 
    TranslateAnimation mAnimUp = 
     new TranslateAnimation(
     Animation.RELATIVE_TO_SELF, 
     0, 
     Animation.RELATIVE_TO_SELF, 
     0, 
     Animation.RELATIVE_TO_SELF, 
     -(mMediaPopUp.getHeight()), 
     Animation.RELATIVE_TO_SELF, 
     0); 

    mAnimUp.setStartOffset(500); 
    mAnimUp.setDuration(500); 

    mMediaPopUp.setVisibility(View.VISIBLE); 
    mMediaPopUp.setAnimation(mAnimUp); 

    } 
} 
+0

太棒了!非常感謝。比如說,我想在關閉彈出窗口時反轉動畫,那會是什麼樣子? – mtmurdock 2010-06-03 15:52:37

+0

它看起來很相似,除非你需要將fromY參數與mAnimUp TranslateAnimation的toY參數切換。此外,您可能需要使用AnimationListener,並等到您的anim結束之後,才能將ViewedGone – m6tt 2010-06-03 16:11:41

+0

的mMediaPopUp視圖可見性設置爲只添加到上述答案,如果您的xml位於單獨的xml文件中,則可以通過它加載LayoutInflator。 – 2010-06-03 18:02:03

相關問題