在Fragment中使用自定义的PopupWindow(带动画效果)
来源:互联网 发布:网络安全法第27条 编辑:程序博客网 时间:2024/06/03 11:20
新手一枚,最近在写一个小的项目,有个地方用到了PopupWindow,经过网上查阅资料和Api文档的查看终于达到了我想要的结果了;
下面是我Fragment中的代码(我将主要的代码贴出来,对于某些控件的声明这里可能没有)
public class SkyDriveFragment extends BaseFragment {@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment_sky_drive, container, false); list = new ArrayList<String>(); initView(); initPopupWindow(); return view; } private void initPopupWindow() { View v = getActivity().getLayoutInflater().inflate( R.layout.rank_animator_view, null); popup = new PopupWindow(v, LayoutParams.MATCH_PARENT, 190, true); popup.setFocusable(true); //该属性设置为true则你在点击屏幕的空白位置也会退出 popup.setTouchable(true); popup.setOutsideTouchable(true); popup.setAnimationStyle(R.style.PopupAnimation); } private void initView() { fenLeiBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { /**相对于某个控件的下方,并且在View这个布局中能找到对应的控件,如果时include的就不能找见*/ popup.showAsDropDown(view.findViewById(R.id.header_include_id), 0, 0); } }); }}
下面是xml文件自定义popopwindow的布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rank_animator_id" android:layout_width="match_parent" android:layout_height="190dp" android:background="#FF323232" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="80dp" android:layout_marginTop="10dp" android:background="#00000000" android:orientation="horizontal" > <Button android:id="@+id/rank_img_btn" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="#00000000" android:drawableTop="@drawable/rank_img_selector" android:text="图片" android:textSize="15sp" /> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="#00000000" android:drawableTop="@drawable/rank_file_selector" android:text="文档" android:textSize="15sp" /> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="#00000000" android:drawableTop="@drawable/rank_video_selector" android:text="视频" android:textSize="15sp" /> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="#00000000" android:drawableTop="@drawable/rank_seed_selector" android:text="BT种子" android:textSize="15sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="80dp" android:layout_marginTop="10dp" android:background="#00000000" android:orientation="horizontal" > <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="#00000000" android:drawableTop="@drawable/rank_music_selector" android:text="音乐" android:textSize="15sp" /> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="#00000000" android:drawableTop="@drawable/rank_app_selector" android:text="应用" android:textSize="15sp" /> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="#00000000" android:drawableTop="@drawable/rank_other_selector" android:text="其他" android:textSize="15sp" /> <Button android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="#00000000" /> </LinearLayout></LinearLayout>
Fragment的布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/sky_main_id" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".SkyDriveFragment" > <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <include android:id="@+id/header_include_id" android:layout_width="match_parent" android:layout_height="150dp" layout="@layout/skydrive_share_header" /> <ListView android:id="@+id/skydrive_lv_id" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/header_include_id" android:fastScrollEnabled="false" android:overScrollMode="never" android:scrollbars="none" /> </RelativeLayout></RelativeLayout>
下面时动画的布局文件,在res文件下创建anim文件夹。这里面有两个动画的布局文件
//这是popup_animation_02.xml<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromYDelta="0" android:toYDelta="-150" android:duration="2000" ></translate>
//这是popup_animation.xml<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromYDelta="-150" android:toYDelta="0" android:duration="2000" ></translate>
下面时style中的一段代码
<style name="PopupAnimation"> <item name="android:windowExitAnimation">@anim/popup_animation_02</item> <item name="android:windowEnterAnimation">@anim/popup_animation</item> </style>
1 0
- 在Fragment中使用自定义的PopupWindow(带动画效果)
- 自定义PopupWindow动画效果
- 自定义PopupWindow动画效果
- Android 自定义PopupWindow动画效果
- 在Silverlight自定义验证效果(带动画)
- PopupWindow的动画效果
- PopupWindow的动画效果
- PopupWindow自定义动画 在onDismiss执行动画无效的解决办法
- 自定义带动画效果的ProgressBar
- 自定义带动画效果的圆形ProgressBar
- 自定义PupopWindow(带动画效果)
- 有关popupwindow的动画效果
- Android自定义View之popupwindow进阶封装:高仿ios “item动画弹出”效果的popupwindow。
- popupwindow的基本使用以及基本动画效果
- 带列表的自定义PopupWindow
- Objective-UIImageView的创建和使用(带动画效果)
- android 自定义菜单 使用PopupWindow实现菜单的各种效果
- PopupWindow和Fragment的使用
- Hadoop RecordReader
- git的学习笔记(分支管理)
- 为什么Maven会更改Eclipse JDK设置
- mac下卸载mysql
- bestcoder 百度之星 1003 IP聚合
- 在Fragment中使用自定义的PopupWindow(带动画效果)
- showcase
- Gym-100712F-Travelling Salesman
- Java多线程和线程池
- hdu5594 ZYB's Prime
- 【JavaScript】JavaScript小技巧
- 殇
- FPGA:下一代机器人感知处理器
- 《TCP/IP详解》学习笔记-第17/18章 TCP:概述、连接建立与终止