android 在PopupWindow里面如何切换外部的Activity?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 在PopupWindow里面如何切换外部的Activity?相关的知识,希望对你有一定的参考价值。

具体是这样的,本来要用TabHost来切换Activity的,但是老板要求这个TabHost要隐藏,所以我就改成了PopupWindow,但是PopupWindow如何切换Activity呢?

参考技术A getActivity()方法获得Activity,然后就可以使用其startActivity等了。

PopupWindow是一种不完全覆盖父窗口的View,通常一些快捷方式,使用它最合适了。
参考技术B popupWindow有一个setContentView()的方法,是设置要显示的视图的,可以把自己原来的一些试图对象用这个方法设置使原来的视图显示出来 参考技术C 你给popwindow加上点击监听
根据点击不同的选项 设置当前的tab页 setCurrentTab(index)不就行了?追问

不是这样的

追答

那是?

追问

就是类似TabHost那样切换 但是要把TabWidget隐藏起来。

追答

是的啊 你把TabHost的TabWidget的宽和高设为0dip
不久不可见了 但是你还是能拿到tabhost 用setCurrentTab(index)
方法啊

或者你干脆就别用tabhost 用fragment来切换算了

追问

你这种方法是不行的,我是将PopupWindow做成TabHost的样式,既可切换又可隐藏

Android弹窗探究之PopupWindow的使用

参考技术A 相对于AlertDialog的使用,PopupWindow的使用也比较简单,这里主要介绍的是PopupWindow的基础使用包括在使用过程中的一些注意事项,做个笔记。

方式一:

方式二:

当然,在实际的开发过程中我们并不能仅仅满足于如何简单使用,更多的时候我们需要去考虑兼容性与扩展性的问题,所以,在这里,我对PopupWindow做了一个简单的封装,如下所示:

创建PopupWindow的管理类,即PopupWindowManager类

新建类来继承自PopupWindow

最后进行调用:

到这里,popupWindow的简单使用就完成了。最后来讲一下在使用popupWindow的过程中需要注意的几点。

(1)必须手动给popupWindow设置宽度和高度,否则popupWindow不显示。
(2)在手机系统的API大于24的时候全屏展示的时候会完全填充整个屏幕,而不是在目标View的下方正常显示。
(3)在有些手机上面,全屏展示的时候底部会留白,其实是因为StatusBar的高度没有计算进去,需要我们自己手动计算出去。
(4)当我们设置了setFocusable为true的时候,点击屏幕事件会交由onTouchListener处理。

以上是关于android 在PopupWindow里面如何切换外部的Activity?的主要内容,如果未能解决你的问题,请参考以下文章

android中介绍popupWindow,说它是阻塞线程式的alertDialog,这个阻塞线程该怎么理解呢?

Android 多个控件绑定同一个PopupWindow,当点击popupWindow中的控件时获取到触发popWindow控件的文本

Android弹窗探究之PopupWindow的使用

Android开发,如何让PopupWindow弹出时外部控件不可点击?

android popupwindow在虚拟键盘上方

Android PopupWindow:白色背景但保留阴影?