【发布时间】:2010-06-03 14:54:17
【问题描述】:
我正在编写一个允许用户访问其公司语音邮件系统的应用程序。语音邮件显示在列表视图中,选择一个菜单时,它们会显示一个菜单。当用户选择“收听”时,我希望在现有 ListView 顶部的屏幕底部弹出一个小型媒体播放器(类似于软键盘在需要时出现,然后在完成后消失)。
选项?
【问题讨论】:
标签: android popupwindow android-listview
我正在编写一个允许用户访问其公司语音邮件系统的应用程序。语音邮件显示在列表视图中,选择一个菜单时,它们会显示一个菜单。当用户选择“收听”时,我希望在现有 ListView 顶部的屏幕底部弹出一个小型媒体播放器(类似于软键盘在需要时出现,然后在完成后消失)。
选项?
【问题讨论】:
标签: android popupwindow android-listview
将您的所有视图(即:您的 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);
}
}
【讨论】: