使用PopupWindow由下向上弹出自定义窗口

本文详细介绍了如何在Android应用中使用PopupWindow创建一个从底部向上弹出的自定义窗口,并配合styles.xml配置文件实现平滑的动画效果。通过加载add_new_in.xml动画资源,为PopupWindow的显示过程添加了视觉吸引力。
摘要由CSDN通过智能技术生成
final View view = getLayoutInflater().inflate(R.layout.pop_dialog, null);
PopupWindow pop = new PopupWindow(view, ViewGroup.LayoutParams.MATCH_PARENT,
				ViewGroup.LayoutParams.WRAP_CONTENT);
		pop.setOutsideTouchable(true);
		pop.setFocusable(true);// 点击back退出pop
		pop.setAnimationStyle(R.style.add_new_style);
		pop.setBackgroundDrawable(new ColorDrawable(0x33ff0000));// 设置背景透明,点击back退出pop
		addNew.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {

				if (pop.isShowing()) {
					pop.dismiss();
				} else {
					pop.showAtLocation(view, Gravity.BOTTOM, 0, -560);//在父控件下方出来
					// pop.showAsDropDown(view);
				}

			}
		});

styles.xml

<style name="add_new_style">
        <item name="android:windowEnterAnimation">@anim/add_new_in</item>
        <ite
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,可以使用Swing或JavaFX等图形用户界面库来创建下拉框和弹出窗口使用Swing创建下拉框: 1. 创建一个JComboBox对象,并将其添加到JFrame中。 ``` JFrame frame = new JFrame("下拉框示例"); String[] items = {"选项1", "选项2", "选项3"}; JComboBox<String> comboBox = new JComboBox<>(items); comboBox.setBounds(50, 50, 100, 30); frame.add(comboBox); ``` 2. 添加一个ItemListener来监听下拉框中选项的改变。 ``` comboBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { String selected = (String) comboBox.getSelectedItem(); System.out.println("选中了:" + selected); } } }); ``` 使用JavaFX创建下拉框: 1. 创建一个ComboBox对象,并将其添加到Scene中。 ``` Stage stage = new Stage(); stage.setTitle("下拉框示例"); ObservableList<String> items = FXCollections.observableArrayList("选项1", "选项2", "选项3"); ComboBox<String> comboBox = new ComboBox<>(items); comboBox.setLayoutX(50); comboBox.setLayoutY(50); Scene scene = new Scene(new Group(comboBox), 200, 100); stage.setScene(scene); ``` 2. 添加一个ChangeListener来监听下拉框中选项的改变。 ``` comboBox.valueProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) { System.out.println("选中了:" + newValue); } }); ``` 使用Swing创建弹出窗口: 1. 创建一个JFrame对象,并设置其为不可见。 ``` JFrame popup = new JFrame("弹出窗口"); popup.setLocationRelativeTo(null); popup.setResizable(false); popup.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); popup.setVisible(false); ``` 2. 创建一个JButton对象,并添加一个ActionListener来打开弹出窗口。 ``` JButton button = new JButton("打开弹出窗口"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { popup.setVisible(true); } }); frame.add(button); ``` 使用JavaFX创建弹出窗口: 1. 创建一个Stage对象,并设置其为不可见。 ``` Stage popup = new Stage(); popup.setTitle("弹出窗口"); popup.initModality(Modality.APPLICATION_MODAL); popup.setResizable(false); popup.setScene(new Scene(new Group())); popup.hide(); ``` 2. 创建一个Button对象,并添加一个EventHandler来打开弹出窗口。 ``` Button button = new Button("打开弹出窗口"); button.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { popup.show(); } }); group.getChildren().add(button); ``` 以上是使用Swing和JavaFX创建下拉框和弹出窗口的基本示例,可以根据实际需求进行扩展和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值