Android(安卓)popupWindow的使用
16lz
2022-01-16
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 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); //第二个参数是宽和高ViewGroup.LayoutParams.MATCH_PARENT表示与父控件WRAP_CONTENT popupWindow = new PopupWindow (view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); //参数表示显示在某一个view的下方,这里填入v表示放入按钮的正下方 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消失
更多相关文章
- Android(安卓)中文API (61) —— ViewSwitcher
- Android(安卓)Service总结04 之被绑定的服务 -- Bound Service
- Android属性 bulid.prop等
- 解决Android(安卓)自定义RatingBar 不能显示半星问题
- Android(安卓)如何实现手机震动
- Tab添加左右按钮
- Android-计算器
- mybatisplus的坑 insert标签insert into select无参数问题的解决
- Python技巧匿名函数、回调函数和高阶函数