Android PopupWindow实现左侧弹窗效果
时间:2022-07-28
本文章向大家介绍Android PopupWindow实现左侧弹窗效果,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文实例为大家分享了Android PopupWindow实现左侧弹窗的具体代码,供大家参考,具体内容如下
效果图:
MainActivity.java页面核心代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在setContentView之前添加,未添加的话home键监听无效,设置窗体属性
this.getWindow().setFlags(0x80000000, 0x80000000);
setContentView(R.layout.activity_main);
//创建广播
//InnerRecevier innerReceiver = new InnerRecevier();
//动态注册广播
//IntentFilter intentFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
//启动广播
//registerReceiver(innerReceiver, intentFilter);
//外部网页
// init();
//pop
Button pop = (Button) findViewById(R.id.popButton);
pop.setOnClickListener(popClick);
}
View.OnClickListener popClick = new View.OnClickListener() {
@Override
public void onClick(View v) {
getPopupWindow();
popupWindow.showAtLocation(v, Gravity.LEFT,0,0);
}
};
/*创建PopupWindow*/
protected void initPopupWindow(){
//获取自定义布局文件activity_pop_left.xml 布局文件
final View popipWindow_view = getLayoutInflater().inflate(R.layout.activity_pop_left,null,false);
//创建Popupwindow 实例,200,LayoutParams.MATCH_PARENT 分别是宽高
popupWindow = new PopupWindow(popipWindow_view,300, ViewGroup.LayoutParams.MATCH_PARENT,true);
//设置动画效果
popupWindow.setAnimationStyle(R.style.AnimationFade);
//点击其他地方消失
popipWindow_view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (popipWindow_view != null && popipWindow_view.isShown()) {
popupWindow.dismiss();
popupWindow = null;
}
return false;
}
});
popupWindow.setBackgroundDrawable(new ColorDrawable(0));
Button button1 = (Button) popipWindow_view.findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"全屏显示",Toast.LENGTH_SHORT).show();
}
});
}
/*获取PopipWinsow实例*/
private void getPopupWindow(){
if (null!=popupWindow){
popupWindow.dismiss();
return;
}else {
initPopupWindow();
}
}
activity_main.xml页面
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.x.MainActivity"
tools:ignore="MergeRootFrame"
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/webView"
/
<Button
android:id="@+id/popButton"
android:text="点击弹出左菜单" android:layout_width="fill_parent"
android:layout_height="wrap_content" /
</FrameLayout
左侧菜单需单独设置一个xml页面,style样式自定义。
以上就是本文的全部内容,希望对大家的学习有所帮助。
- 区块链概况:什么是比特币
- 简化版桶排序操作模版
- BZOJ 3670: [Noi2014]动物园【KMP变形 】
- 【延迟注入】A5站长网某站存在SQL注入漏洞
- hihoCoder #1498 : Diligent Robots【数学】
- Codeforces Round #336 (Div. 2)【A.思维,暴力,B.字符串,暴搜,前缀和,C.暴力,D,区间dp,E,字符串,数学】
- 【防护】如何阻止SELECT * 语句
- COGS 862. 二进制数01串【dp+经典二分+字符串】
- 【AlphaGo Zero 核心技术-深度强化学习教程代码实战03】编写通用的格子世界环境类
- 冒泡排序简单操作模版及实例分析
- COGS 1299. bplusa【听说比a+b还要水的大水题???】
- python学习笔记之运算符
- 锐捷网络NBR部分路由器cookie欺骗权限绕过
- 手写快排模版
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python Scrapy图片爬取原理及代码实例
- Python-for循环的内部机制
- 解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
- 基于python实现模拟数据结构模型
- keras的siamese(孪生网络)实现案例
- 浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
- Python数据可视化图实现过程详解
- Python matplotlib 绘制双Y轴曲线图的示例代码
- keras 读取多标签图像数据方式
- python新手学习可变和不可变对象
- COS Android SDK DEMO搭建实践
- 利用COS多版本避免文件误删除
- kube-prometheus添加target
- 深入浅析python 中的self和cls的区别
- php中如何执行linux命令详解