底部弹出popUpWindow
来源:互联网 发布:mysql 韩顺平 百度云 编辑:程序博客网 时间:2024/04/30 23:41
点击外部消失,重写内部的onclick事件
代码部分
PopupWindowUtils.java
import android.content.Context;import android.graphics.drawable.ColorDrawable;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.WindowManager;import android.widget.ListView;import android.widget.PopupWindow;/** * Created by jiaqi.wang on 2016/7/7 0007. * 底部弹出popupwindow */public class PopupWindowUtils { private MyPopAdapter myPopAdapter; private PopupWindow window; public static PopupWindowUtils instance = new PopupWindowUtils(); private PopupWindowUtils() { } public static PopupWindowUtils getInstance() { return instance; } public boolean isShowing() { if (window != null) { return window.isShowing(); } return false; } public void show(View mPopwinParent) { if (window != null) { window.showAtLocation(mPopwinParent, Gravity.BOTTOM, 10, 10); } } public void dismiss() { if (window != null) { window.dismiss(); } } public void setContentView(View inflate) { if (window == null) { window = new PopupWindow(inflate, -1, -2); window.setFocusable(true); //设置外部可点击 window.setOutsideTouchable(true); // 设置透明蒙层 window.setBackgroundDrawable(new ColorDrawable(0xb0000000)); //盖住自带软键盘 window.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED); window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); } window.setContentView(inflate); } public void initPopWinData(Context context, String[] list, View.OnClickListener clickListener) { View inflate = LayoutInflater.from(context).inflate(R.layout.pop_choose, null); final View dismiss = inflate.findViewById(R.id.dimiss_view); dismiss.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { PopupWindowUtils.getInstance().dismiss(); } }); ListView popList = (ListView) inflate.findViewById(R.id.lv_pop); myPopAdapter = new MyPopAdapter(context, list); myPopAdapter.setClickListener(clickListener); popList.setAdapter(myPopAdapter); PopupWindowUtils.getInstance().setContentView(inflate); }}
MyPopAdapter.java
import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import static android.view.View.OnClickListener;/** * Created by jiaqi.wang on 2016/7/7 0007. * 底部弹出popupwindow适配器 */public class MyPopAdapter extends BaseAdapter { private String[] list; private Context context; private OnClickListener clickListener = new OnClickListener() { @Override public void onClick(View v) { } } ; public MyPopAdapter(Context context, String[] list) { this.list = list; this.context = context; } public void setClickListener(OnClickListener clickListener){ this.clickListener = clickListener; } @Override public int getCount() { return list.length; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { convertView = LayoutInflater.from(context).inflate(R.layout.pop_choose_item, null); holder = new ViewHolder(); holder.tv = (TextView) convertView.findViewById(R.id.tv_pop); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.tv.setText(list[position]); holder.tv.setOnClickListener(clickListener); return convertView; } class ViewHolder { TextView tv; }}
xml文件
pop_choose.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <View android:id="@+id/dimiss_view" android:layout_width="match_parent" android:layout_height="0dp" android:background="#0fff" android:layout_weight="1"/> <TextView android:layout_width="match_parent" android:layout_height="34dp" android:background="@color/white" android:gravity="center" android:text="请选择" android:textColor="@color/color_blue_009eef" android:textSize="16dp" /> <ListView android:id="@+id/lv_pop" android:background="@color/white" android:layout_width="match_parent" android:layout_height="match_parent" android:divider="@null" android:scrollbars="none"/></LinearLayout>
pop_choose_item.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/tv_pop" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:layout_marginTop="18dp" android:gravity="center" android:text="选择" android:textSize="15dp" /></LinearLayout>
0 0
- PopupWindow底部弹出
- PopupWindow底部弹出
- Popupwindow底部弹出
- PopupWindow底部弹出效果
- 底部弹出popUpWindow
- PopupWindow从底部弹出
- 从屏幕底部弹出PopupWindow
- popupwindow使用之底部弹出
- 从屏幕底部弹出PopupWindow
- popupwindow 底部弹出+背景半透明
- popupwindow仿侧滑菜单底部弹出
- 点击 PopupWindow ,ListView 底部弹出
- Android底部弹出的popupWindow
- 从底部弹出的PopupWindow
- PopupWindow实现屏幕底部弹出
- Android PopupWindow实战仿QQ底部弹出
- Android 之从底部弹出PopupWindow
- 自定义PopupWindow轻松实现从底部弹出
- nodejs代理
- 学习网络爬虫是遇到的问题之系统找不到指定的路径
- Retrofit学习教程(2)-Android基础验证
- android-嵌套滚动和自定义behavior。
- React-Native开发环境搭建
- 底部弹出popUpWindow
- OpenGL 实现模拟太阳系运动
- 制作字体图标
- 工厂模式
- caffe loss以及正则项反向传播过程
- 229 用 composer 管理私有包
- Unity封装C#成dll文件
- jQuery class选择器的使用
- 跨域请求jsonp格式的数据 回调函数的使用