文章目录
安卓 PopupWindow
弹出框
获得子布局
View popView = getLayoutInflater().inflate(R.layout.pop,null);
new个PopupWindow对象
PopupWindow popupWindow = new PopupWindow(popView , ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT, true );
第一个参数 : 内部布局
第二个参数:宽
第三个参数:高
第四个参数:是否获得焦点
设置属性
setBackgroundDrawable
背景图片
showAsDropDown
在哪里显示
dismiss
关闭PopupWindow
点击按钮弹出PopupWindow
代码
xml(MainActivity)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
>
<Button
android:id="@+id/button"
android:text="显示PopupWindow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
xml(子布局)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/myColor"
android:padding="5dp">
<Button
android:id="@+id/button1"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="第一个按钮"/>
<Button
android:id="@+id/button2"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="第二个按钮"/>
</LinearLayout>
java
package com.example.test;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.PopupWindow;
public class MainActivity extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取控件
button = findViewById(R.id.button);
button.setOnClickListener(view -> {
//获得布局
View popView = getLayoutInflater().inflate(R.layout.pop,null);
PopupWindow popupWindow = new PopupWindow(popView ,
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
true );
popupWindow.setBackgroundDrawable(getResources().getDrawable(R.mipmap.pic));
Button button1 = popView.findViewById(R.id.button1);
Button button2 = popView.findViewById(R.id.button2);
button1.setOnClickListener(view1 -> {
System.out.println("第一个按钮被点击");
});
button2.setOnClickListener(view1 -> {
System.out.println("第二个按钮被点击");
popupWindow.dismiss();
});
popupWindow.showAsDropDown(view);
});
}
}