Android中PopupWindow弹出式窗口使用方法详解

 更新时间:2022年09月19日 14:31:47   作者:路宇  
这篇文章主要为大家详细介绍了Android中PopupWindow弹出式窗口的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Android中PopupWindow弹出式窗口使用的具体代码,供大家参考,具体内容如下

效果图如下:

实现代码如下:

activity_popup_window.xml按钮

<?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"
    android:orientation="vertical"
    tools:context=".PopupWindowActivity">

    <Button
        android:id="@+id/btn_popupWindow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="PopupWindow" />
</LinearLayout>

自定义弹出的视图layout_pop.xml,也可以用RecycleView或者ListView

<?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">

    <TextView
        android:id="@+id/tv_good"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:paddingTop="8dp"
        android:paddingBottom="8dp"
        android:text="好"
        android:textColor="@color/gray"
        android:textSize="20sp" />

    <View
        android:layout_width="match_parent"
        android:layout_height="0.5dp"
        android:background="@color/gray" />

    <TextView
        android:id="@+id/tv_not_too_bad"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:paddingTop="8dp"
        android:paddingBottom="8dp"
        android:text="还行"
        android:textColor="@color/gray"
        android:textSize="20sp" />

    <View
        android:layout_width="match_parent"
        android:layout_height="0.5dp"
        android:background="@color/gray" />

    <TextView
        android:id="@+id/tv_bad"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:paddingTop="8dp"
        android:paddingBottom="8dp"
        android:text="不好"
        android:textColor="@color/gray"
        android:textSize="20sp" />
</LinearLayout>

PopupWindowActivity类实现代码如下:

public class PopupWindowActivity extends AppCompatActivity {
    private Button btn_popupWindow;
    private PopupWindow popupWindow;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_popup_window);
        btn_popupWindow = findViewById(R.id.btn_popupWindow);
        btn_popupWindow.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                View popup_view = LayoutInflater.from(PopupWindowActivity.this).inflate(R.layout.layout_pop, null);
                TextView textView = popup_view.findViewById(R.id.tv_good);
                textView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        popupWindow.dismiss();
                        Toast.makeText(PopupWindowActivity.this, "好", Toast.LENGTH_SHORT).show();
                    }
                });
                popupWindow = new PopupWindow(popup_view, btn_popupWindow.getWidth(), ViewGroup.LayoutParams.WRAP_CONTENT);
                //设置弹出窗口应该接收外部触摸事件
                popupWindow.setOutsideTouchable(true);
                //设置可聚焦
                popupWindow.setFocusable(true);
                popupWindow.showAsDropDown(btn_popupWindow);
            }
        });
    }
}

以上就是PopupWindow弹出式窗口的简单使用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Android布局控件之常用linearlayout布局

    Android布局控件之常用linearlayout布局

    LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失
    2016-01-01
  • Android App中使用AudioManager类来编写音频播放器

    Android App中使用AudioManager类来编写音频播放器

    这篇文章主要介绍了Android App中使用AudioManager类来编写音乐播放器的方法,文中举了一个简单的例子实现了基础的播放暂停和静音等功能,需要的朋友可以参考下
    2016-04-04
  • Flutter 日历组件简单实现

    Flutter 日历组件简单实现

    这篇文章主要为大家介绍了Flutter 日历组件简单实现的图文示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • android图片处理 让图片变成圆形

    android图片处理 让图片变成圆形

    这篇文章主要为大家详细介绍了android图片处理的相关资料,让图片变成圆形,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Android中使用TextView实现高仿京东淘宝各种倒计时效果

    Android中使用TextView实现高仿京东淘宝各种倒计时效果

    今天给大家带来的是仅仅使用一个TextView实现一个高仿京东、淘宝、唯品会等各种电商APP的活动倒计时。今天小编把实现代码分享到脚本之家平台,对android textclock 倒计时效果感兴趣的朋友参考下吧
    2016-10-10
  • Flutter质感设计之模态底部面板

    Flutter质感设计之模态底部面板

    这篇文章主要为大家详细介绍了Flutter质感设计之模态底部面板,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Android中实现GPS定位的简单例子

    Android中实现GPS定位的简单例子

    这篇文章主要介绍了Android中实现GPS定位的简单例子,例子逻辑清晰,但相对简单了些,需要的朋友可以参考下
    2014-07-07
  • Android开发之开发者头条(二)实现左滑菜单

    Android开发之开发者头条(二)实现左滑菜单

    本文给大家介绍Android开发之开发者头条(二)实现左滑菜单,主要用android自带的DrawerLayout控件实现的此功能,具体实现过程请参考下本文
    2016-04-04
  • Android利用滑动菜单框架实现滑动菜单效果

    Android利用滑动菜单框架实现滑动菜单效果

    这篇文章主要介绍了Android实现滑动菜单特效之滑动菜单框架完全解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • Android Loader详细介绍及实例代码

    Android Loader详细介绍及实例代码

    这篇文章主要介绍了Android Loader详细介绍及实例代码的相关资料,需要的朋友可以参考下
    2016-12-12

最新评论