展会信息港展会大全

Android PopupWindow 实现自定义弹出层
来源:互联网   发布日期:2015-10-03 11:31:10   浏览:1428次  

导读:Android系统的AlertDailog ,Menu。。。之类控件,我不确定能否自定义样式。 就是在应用中自定义一套主题。因为系统Menu菜单极其单一。样式丑陋,而且字体,字号都无法修改。想到用PopupWindow来实现。PopupWi......

Android系统的AlertDailog ,Menu。。。之类控件,我不确定能否自定义样式。 就是在应用中自定义一套主题。

因为系统Menu菜单极其单一。样式丑陋,而且字体,字号都无法修改。想到用PopupWindow来实现。PopupWindow 其实是一个Activity 但是消耗的系统资源没有 Activity那么大。 是一个小型的UI线程 (可以这么理解吧)。

主体代码

//长按弹出菜单

public void showTopWindow(){

if (mPopupWindow==null);{

inintTopWindow();

}

mPopupWindow.showAtLocation(findViewById(R.id.full_main), Gravity.CENTER|Gravity.CENTER, 0, 0);

}

// 长按弹出层

public void inintTopWindow(){

LayoutInflater mLayoutInflater = (LayoutInflater) (FullScreenLineActivity.this).getSystemService(LAYOUT_INFLATER_SERVICE);

View topWindow=mLayoutInflater.inflate(R.layout.k_line_top_window_layout, null);

mPopupWindow=new PopupWindow(topWindow,LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);

mPopupWindow.setOutsideTouchable(false);

topWindow.findViewById(R.id.f10info).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

。。。

}

});

}

PopupWindow的布局可以自定义 xml。弹出的PopupWindow 是在Activity上层的。

所以即使弹出了PopupWindow,下层的Activity没有被遮盖的部分依然有之前的所有 监听。 例如我上图中,的触摸滑动事件。按钮事件 都依然存在。

为了能够像 AlertDialog那样,弹出后。下面的视图,显示为暗色,不能做任何操作。

设置 PopupWindow 布局为布满整个屏幕,中间是并列的 5个按钮。 外围暗黑色的,其实是一个半透明的背景。

将PopupWindow设置为整个屏幕大小, 外围半透明。效果与AlertDialog相当。

按这种思路 ,可以实现自己定义的按钮。 AlertDialog。样式更灵活,修改起来也方便。

赞助本站

人工智能实验室

相关热词: PopupWindow

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港