闲来无事,索性就复习了一下PopupWindow的使用。由于一般情况下,大多数PopupWindow都是显示在控件下面,所以只呈现了一种情况,基本够用了。
public class MainActivity extends AppCompatActivity {
private PopupWindow popupWindow;
private int xOff = 0;
View popView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
popView = LayoutInflater.from(this).inflate(R.layout.popup_layout,null);
popupWindow = new PopupWindow(popView, 300, 300);
//设置这个参数点击外边可消失
popupWindow.setBackgroundDrawable(new BitmapDrawable());
//点击外边窗口消失
popupWindow.setOutsideTouchable(true);
//获得焦点,否则无法点击
popupWindow.setFocusable(true);
}
public void Click(View view) {
if(popupWindow.isShowing()) {
popupWindow.dismiss();
}else {
Toast.makeText(MainActivity.this,"宽度----》"+popupWindow.getWidth()/2,Toast.LENGTH_LONG).show();
xOff = popupWindow.getWidth()/2 - view.getWidth()/2;
/**
* 显示基准控件下面
* view 基准控件
* -xOff view左边到pop左边的偏移量
* 0 view下边到pop上面的偏移量
*/
popupWindow.showAsDropDown(view,-xOff,0);
}
}
}
更多使用场景,请参考:
Android PopupWindow的使用和分析