一个自定义popuwindow

这个东西没有太多的计划含量,但我还是决定写一遍博客来纪念它,因为初次使用它的时候我不知道怎么处理。

1、我不知道如何显示阴影部分(在xml里处理的)

2、我不知道如何显示用软键盘将内容顶上去(一行代码搞定)

有图有真相


代码
package com.example.mytestdemo;


import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.WindowManager;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class ApplyPopupWindow extends PopupWindow implements OnClickListener {
	// 监听
	private Listener listener;
	private Context context;
	private View parent;
	
	private EditText ev_apply_popupwindows_replycontent;
	private LinearLayout rl_apply_popupwindows_accept;
	private LinearLayout rl_apply_popupwindows_refuse;
	private LinearLayout rl_apply_popupwindows_deliver;


	 private LinearLayout dismiss;

	public interface Listener {
		public void Onclick(View v);
	}

	public ApplyPopupWindow(Context context, View parent, Listener listener) {

		this.listener = listener;
		this.context = context;
		this.parent = parent;
		View view = LayoutInflater.from(context).inflate(
				R.layout.apply_popupwindows, null);
		setContentView(view);
		setWidth(LayoutParams.MATCH_PARENT);
		setHeight(LayoutParams.MATCH_PARENT);
		setFocusable(true);
	//	setSoftInputMode(PopupWindow.INPUT_METHOD_NEEDED);
		setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);//将键盘顶上去
		setBackgroundDrawable(new BitmapDrawable());
		setOutsideTouchable(true);
		showAtLocation(parent, Gravity.BOTTOM, 0, 0);
		setAnimationStyle(R.style.mypopwindow_anim_style);

		update();
		dismiss = (LinearLayout) view.findViewById(R.id.dismiss);
		
		rl_apply_popupwindows_accept = (LinearLayout) view.findViewById(R.id.rl_apply_popupwindows_accept);
		rl_apply_popupwindows_deliver = (LinearLayout) view.findViewById(R.id.rl_apply_popupwindows_deliver);
		rl_apply_popupwindows_refuse = (LinearLayout) view.findViewById(R.id.rl_apply_popupwindows_refuse);
		ev_apply_popupwindows_replycontent = (EditText) view
				.findViewById(R.id.et_apply_popupwindows_replycontent);
		ev_apply_popupwindows_replycontent.setOnClickListener(this);
		rl_apply_popupwindows_accept.setOnClickListener(this);
		rl_apply_popupwindows_deliver.setOnClickListener(this);
		rl_apply_popupwindows_refuse.setOnClickListener(this);
		dismiss.setOnClickListener(this);

	}


	public EditText getEv_apply_popupwindows_replycontent() {
		return (EditText) ev_apply_popupwindows_replycontent;
	}

	@Override
	public void onClick(View v) {
		listener.Onclick(v);

	}

}

demo下载


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值