1
我在寫一個應用程序,允許用戶訪問他們的企業語音郵件系統。語音郵件顯示在列表視圖中,當選擇其中一個時,它們被給予菜單。當用戶選擇「聽」時,我希望小型媒體播放器在現有ListView頂部彈出屏幕底部(類似於軟鍵盤在需要時彈出,然後在完成時離開)。如何在Android中的現有活動之上創建子視圖apear?
選項?
我在寫一個應用程序,允許用戶訪問他們的企業語音郵件系統。語音郵件顯示在列表視圖中,當選擇其中一個時,它們被給予菜單。當用戶選擇「聽」時,我希望小型媒體播放器在現有ListView頂部彈出屏幕底部(類似於軟鍵盤在需要時彈出,然後在完成時離開)。如何在Android中的現有活動之上創建子視圖apear?
選項?
將您的所有視圖(即:您的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);
}
}
太棒了!非常感謝。比如說,我想在關閉彈出窗口時反轉動畫,那會是什麼樣子? – mtmurdock 2010-06-03 15:52:37
它看起來很相似,除非你需要將fromY參數與mAnimUp TranslateAnimation的toY參數切換。此外,您可能需要使用AnimationListener,並等到您的anim結束之後,才能將ViewedGone – m6tt 2010-06-03 16:11:41
的mMediaPopUp視圖可見性設置爲只添加到上述答案,如果您的xml位於單獨的xml文件中,則可以通過它加載LayoutInflator。 – 2010-06-03 18:02:03