popupWindow
- 创建一个popupWindow对象,其中的参数为
(1)弹出的页面的view
view = getLayoutInflater().inflate(R.layout.popup_window_view, null);
拿到popupWindow相应的View的view对象
(2)宽度ViewGroup.LayoutParams.WRAP_CONTENT
表示自适应
(3)高度 - 使用popupWindow对象的
popupWindow.showAsDropDown(v, 200, 200);
参数1:popupWindow在参数一的view之下。参数二:x方向的偏移量。参数三:y方向的偏移量。 - 实现:
点击按钮后弹出一个popupview,点击相应的两个按钮上海和北京,一个显示提示,一个显示一个弹窗
public class MainActivity extends AppCompatActivity {
private Button button;
Button button_shanghai;
Button button_beijing;
PopupWindow popupWindow;
private View view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button_popupWindow);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
view = getLayoutInflater().inflate(R.layout.popup_window_view, null);
button_shanghai = (Button) view.findViewById(R.id.button_shanghai);
button_beijing = (Button) view.findViewById(R.id.button_beijing);
popupWindow = new PopupWindow
(view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.showAsDropDown(v, 200, 200);
button_shanghai.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "你去过上海吗", Toast.LENGTH_SHORT).show();
popupWindow.dismiss();
}
});
button_beijing.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new
AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.li)
.setTitle("北京")
.setMessage("你去过北京吗")
.create()
.show();
popupWindow.dismiss();
}
});
}
});
}
- 点击按钮之后弹出
- 点击上海按钮
PopupWindow消失且显示提示
- 点击北京按钮
显示一个弹窗,并且 PopupWindow消失