android-碎片中弹出popuwindow

原创 2016年08月30日 20:42:18
private PopupWindow popupWindow;
private LayoutInflater mInflater;
private ViewGroup mRootView;
public void showPopWindow(View v){
if (mInflater==null||mRootView==null) {
mInflater=(LayoutInflater) getActivity().getSystemService(getActivity().LAYOUT_INFLATER_SERVICE);;
mRootView = (ViewGroup) mInflater.inflate(R.layout.date_popuwindow, null, true);//获得自定义布局
datePicker = (DatePicker) mRootView.findViewById(R.id.datePicker);
timePicker = (TimePicker) mRootView.findViewById(R.id.timePicker);
datePicker.setOnScrollListener(this);
timePicker.setOnScrollListener(this);
}
if (popupWindow==null) {
popupWindow=new PopupWindow();
popupWindow.setContentView(mRootView);
popupWindow.setWidth(300);
popupWindow.setHeight(LayoutParams.WRAP_CONTENT);
popupWindow.setBackgroundDrawable(new BitmapDrawable());
popupWindow.setFocusable(true);
popupWindow.setOutsideTouchable(true);
}


//解决触摸popuwindow外部dimiss掉popuwindow 内部滑动
popupWindow.setTouchInterceptor(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if (event.getX()>0&&event.getX()<v.getWidth()) {
if (event.getY()>0&&event.getY()<v.getHeight()) {
LogUtils.i("------onTouch"+event.getX()+"-----"+event.getY()+"--"+"-----------"+v.getWidth()+"----"+v.getHeight());
return false;
}

}


popupWindow.dismiss();
leaveTimePicker();
return true;
}
});
int[] loc = new int[2];
popupWindow.showAsDropDown(v, 100, 0);

}

写一个接口

/* 接口作用:点击popupwindow窗口外部使其消失,由由主活动实现,创建popupwindow对象时回调 */

publicinterface PopupDismiss{

void setPopup(PopupWindow window); }

/*dismiss是接口对象*/dismiss = (PopupDismiss) getActivity();dismiss.setPopup(popupWindow);

/*主活动里实现这个方法*/publicvoidsetPopup(PopupWindow window){ popupWindow = window; }

/*屏幕的点击事件,重写活动的这个方法就可以了*/public boolean onTouchEvent(MotionEventevent){if(popupWindow != null && popupWindow.isShowing()){ popupWindow.dismiss(); } return super.onTouchEvent(event); }


popupWindow.setTouchInterceptor(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if (event.getX()>0&&event.getX()<v.getWidth()) {
if (event.getY()>0&&event.getY()<v.getHeight()) {
LogUtils.i("------onTouch"+event.getX()+"-----"+event.getY()+"--"+"-----------"+v.getWidth()+"----"+v.getHeight());
return false;
}

}


popupWindow.dismiss();
leaveTimePicker();
return true;
}
});




版权声明:本文为博主原创文章,未经博主允许不得转载。

Android Fragment项目中使用及生命周期分析

前言 先把MainActivity可以视为我们项目的主页面,Fragment视为其中子页面,可以切换显示页面,怎么实现呢?我们要使用FragmentManager进行管理Fragment,选择性的让...
  • csdn_aiyang
  • csdn_aiyang
  • 2017年02月20日 17:41
  • 507

《第一行代码Android》学习日记10

1.碎片的使用方法 我们利用碎片这种嵌入在活动中的UI片段,来使程序更加合理和充分地利用大屏幕的空间,兼顾手机和平板界面。 新建FragmentTest项目,在其中新建一个左侧碎片布局left_f...
  • jiao_jiao_sunshine
  • jiao_jiao_sunshine
  • 2015年11月06日 16:07
  • 226

Android 继承于PopuWindow的自定义弹出窗体

继承于PopuWindow的自定义弹出窗体
  • qq_14923661
  • qq_14923661
  • 2016年09月25日 13:06
  • 1287

关于PopuWindow的弹出方式

从左向右进入,从右向左退出:
  • u010127250
  • u010127250
  • 2014年07月30日 16:27
  • 402

Android学习之碎片与活动之间的通信

一、碎片虽然是嵌入在活动中显示的,但是碎片和活动都是各自存在不同的类当中的,并没有什么明显的方式来直接进行通信的。那么如果要在活动中调用碎片里的方法,在碎片里调用活动的方法,一个碎片调用另一碎片的方法...
  • u012561176
  • u012561176
  • 2015年11月11日 23:21
  • 2966

Android碎片知识总结之布局、列表

一、ScrollView中嵌套listview一般默认只显示一行,如何解决这个问题呢? 方法就是在设置Listview赋值的时候,要计算出listview每个Item项的高度,然后根据计算的高度来显...
  • qq_17478479
  • qq_17478479
  • 2017年02月10日 19:39
  • 194

从屏幕底部弹出PopupWindow

最近因为要用到PopupWindow,所以,就在网上搜索了一下,发现挺多关于这样的文章,现在我把它们整理了一下。   1、Android PopupWindow 的使用技巧,http://www.cn...
  • yxhuang2008
  • yxhuang2008
  • 2015年01月11日 21:59
  • 16999

跟我学Android UI高级之十五碎片Fragment

本章内容 Fragment介绍 创建Fragment 替换和移除Fragment Fragment与activity通信       Android在3.0...
  • zhangchen124
  • zhangchen124
  • 2016年07月25日 17:25
  • 427

Android学习之动态调用碎片

一、碎片可以在程序运行时动态添加到活动当中。我们可以根据具体情况动态地添加碎片,使得界面定制更加多样化,下面将用个例子来介绍动态调用碎片。 先附上下面例子运行后的效果,效果如下: 点击左边按钮...
  • u012561176
  • u012561176
  • 2015年11月10日 22:42
  • 756

Android之带遮罩层的弹出框—popUpWindow

上次项目中实现了新功能,就一直想添加到博客里来着,惰性发作起来简直太可怕,不说了,跟着一起写吧,三步即可实现简单的弹出框功能,首先看效果—— 首先:主页面布局,触发控件一定要有,再有就是给根...
  • Fairy_1126
  • Fairy_1126
  • 2016年06月07日 11:06
  • 2726
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android-碎片中弹出popuwindow
举报原因:
原因补充:

(最多只允许输入30个字)