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