4.PopupWindow
想要弹出内容就可以考虑使用悬浮窗
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rl_root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".LoginActivity" >
<com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/lv_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#fff" />
<View
android:id="@+id/viewHolder"
android:layout_width="match_parent"
android:layout_height="53dp"
android:visibility="gone" />
</LinearLayout>
代码
lv_list.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), "长按", 0).show();
//开启编辑模式
startEditModel();
if (position > 0) {
position -= 1;
}
adapter.toggleSelect(view, position);
return true;
}
});
}
private boolean isEditModel;
private int seletedCount;
/**
* 开启编辑模式
*/
private void startEditModel() {
//listview需要刷新
isEditModel = true;
adapter.notifyDataSetChanged();
//修改actionbar
uploadMenuItem.setVisible(false);
downloadMenuItem.setVisible(false);
moreMenuItem.setVisible(false);
selectMenuItem.setVisible(true);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setTitle(String.format("已选定%d个", seletedCount));
//显示底部的popupwindows
//当在最 底部时会覆盖条目,可以在下面弄个view,让他显示
showBottomPopupWindow();
//listview上移
viewHolder.setVisibility(0);
}
/**
* 结束编辑模式
*/
private void stopEditModel() {
//listview需要刷新
isEditModel = false;
adapter.notifyDataSetChanged();
//修改actionbar
uploadMenuItem.setVisible(true);
downloadMenuItem.setVisible(true);
moreMenuItem.setVisible(true);
selectMenuItem.setVisible(false);
actionBar.setTitle("黑马网盘");
//返回按钮的处理
if ("/".equals(curPath)) {
actionBar.setDisplayHomeAsUpEnabled(false);
}
//隐藏popupwindows
bottomPopupWindow.dismiss();
//listview还原
viewHolder.setVisibility(8);
//还原entryWrapper的选中状态
for (EntryWrapper entryWrapper : contents) {
entryWrapper.isCheck = false;
}
seletedCount = 0;
}
private void showBottomPopupWindow() {
if (bottomPopupWindow == null) {
View contentView = View.inflate(MainActivity.this, R.layout.bottom_edit_pop, null);
int width = ViewGroup.LayoutParams.FILL_PARENT;
int height = ViewGroup.LayoutParams.WRAP_CONTENT;
bottomPopupWindow = new PopupWindow(contentView, width, height);
contentView.findViewById(R.id.DeleteBtn).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
List<EntryWrapper> selectedEntryWrappers = new ArrayList<EntryWrapper>();
for (EntryWrapper info : contents) {
if (info.isCheck) {
selectedEntryWrappers.add(info);
}
}
StringBuffer sb = new StringBuffer();
//遍历输出
for (EntryWrapper entryWrapper : selectedEntryWrappers) {
sb.append(entryWrapper.entry.fileName()).append(" ");
}
System.out.println(sb.toString());
}
});
}
bottomPopupWindow.showAtLocation(rl_root, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0);
}
4.PopupWindow的更多相关文章
- Android PopupWindow Dialog 关于 is your activity running 崩溃详解
Android PopupWindow Dialog 关于 is your activity running 崩溃详解 [TOC] 起因 对于 PopupWindow Dialog 需要 Activi ...
- Android popupwindow使用心得(一)
最近项目中好多地方用到popupwindow,感觉这个控件还是非常重要的.所以把使用心得总结下,废话不多说,直接上代码. public class MainActivity extends Activ ...
- 不得不吐槽的Android PopupWindow的几个痛点(实现带箭头的上下文菜单遇到的坑)
说到PopupWindow,我个人感觉是又爱又恨,没有深入使用之前总觉得这个东西应该很简单,很好用,但是真正使用PopupWindow实现一些效果的时候总会遇到一些问题,但是即便是人家的api有问题, ...
- 仿QQ空间根据位置弹出PopupWindow显示更多操作效果
我们打开QQ空间的时候有个箭头按钮点击之后弹出PopupWindow会根据位置的变化显示在箭头的上方还是下方,比普通的PopupWindow弹在屏幕中间显示好看的多. 先看QQ空间效果图: ...
- 自定义PopupWindow
PopupWindow,一个弹出窗口控件,可以用来显示任意View,而且会浮动在当前activity的顶部 自定义PopupWindow. 1.extends PopupWindow 2.构造方法中可 ...
- PopupWindow 使用
昨天马失前蹄,为了做一个小键盘,耽误了两个小时,记录一下心路历程 1.关于需求与选择 需求: 点击一个按钮,弹出一个小键盘(类似于输入法键盘) 选择: (1)方案一:KeyboardView 这是百度 ...
- popupwindow的基本使用以及基本动画效果
1.创建一个popupwindow view的布局文件自己写一个就好了,这里就不说了 View view= LayoutInflater.from(context).inflate(R.layout. ...
- Android -- PopupWindow(其中嵌套ListView 可以被点击)
1. 效果图
- Android开发学习之路-PopupWindow和仿QQ左滑删除
这周作业,要做一个类似QQ的左滑删除效果的ListView,因为不想给每个item都放一个按钮,所以决定用PopupWindow,这里记录一下 先放一下效果图: 先说明一下这里面的问题: ①没有做到像 ...
- android标题栏上面弹出提示框(二) PopupWindow实现,带动画效果
需求:上次用TextView写了一个从标题栏下面弹出的提示框.android标题栏下面弹出提示框(一) TextView实现,带动画效果, 总在找事情做的产品经理又提出了奇葩的需求.之前在通知栏显示 ...
随机推荐
- Entity Framework CodeFirst数据迁移
前言 紧接着前面一篇博文Entity Framework CodeFirst尝试. 我们知道无论是“Database First”还是“Model First”当模型发生改变了都可以通过Visual ...
- Currency Exchange(Bellman-ford)
Currency Exchange Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 21349 Accepted: 765 ...
- java笔记--查看和修改线程的优先级
查看和修改线程的优先级 java中每一个线程都有优先级属性,在默认情况下,新建的线程的优先级与创建该线程的线程优先级相同.每当线程调度器选择要运行的线程时,通常选择优先级较高的线程. 注:线程的优先级 ...
- java笔记--使用SwingWoker类完成耗时操作
使用SwingWoker类完成耗时操作: 对于Swing中的耗时操作,通常要在一个新的线程中运行,以免程序"假死". 在java6.0中,可以用SwingWoker类来完成 Swi ...
- codeforces 258div2C Predict Outcome of the Game
题目链接:http://codeforces.com/contest/451/problem/C 解题报告:三个球队之间一共有n场比赛,现在已经进行了k场,不知道每个球队的胜场是多少,如三个球队的胜场 ...
- [Effective JavaScript 笔记]第42条:避免使用轻率的猴子补丁
41条对违反抽象原则行为的讨论之后,下面聊一聊终极违例.由于对象共享原型,因此每一个对象都可以增加.删除或修改原型的属性.这个有争议的实践通常称为猴子补丁. 猴子补丁示例 猴子补丁的吸引力在于其强大. ...
- CentOS 7安装Splunk
导读 Splunk是探索和搜索数据的最有力工具,从收集和分析应用程序.Web服务器.数据库和服务器平台的实时可视化海量数据流,分析出IT企业产生的海量数据,安全系统或任何商业应用,给你一个总的见解获得 ...
- 【NGUI】grid下面的item的重复利用
http://blog.csdn.net/u012091672/article/details/21159075解决的问题 使用grid放置item的时候,每次数据可能都不一样,但是每次都删除grid ...
- php用soap创建webservice
php提供了一个专门用于soap操作的扩展库,使用该扩展库后 可以直接在php中进行soap操作.下面将介绍soap的基本操作. 一.soap扩展的使用方法 php的soap扩展库通过soap协议实现 ...
- 北工大耿丹学院16级计科院3班C语言课程助教学期总结
很荣幸得到邹老师,周老师,以及北工大耿丹学院各位老师的认可,担任计科院3班C语言课程助教,班主任为李光杰老师,很感谢李老师一学期的帮助,使得我更好的担任助教一职.我班学生31名,很愉快的与同学们度过一 ...