首页 > 代码库 > PopupWindow --- 弹出底部窗体

PopupWindow --- 弹出底部窗体

第一步 : 布局文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="horizontal" >    <LinearLayout    android:id="@+id/menu_close"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:background="@drawable/menu_bg"    //背景图片    9        android:gravity="center"        android:orientation="vertical" >        <LinearLayout            android:id="@+id/menu_close_btn"            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:background="@drawable/menu_btn_bg"   // 选择器            android:gravity="center"            android:orientation="vertical" >            <ImageView                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:src="@drawable/btn_close" />   // 关闭的图标            <TextView                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="退出"                android:textColor="#eee" />        </LinearLayout>    </LinearLayout></LinearLayout>

第二步 点击 事件 调出 PopupWindow 的方法

    if (!menu_display) {    //如果没有显示                // 获取LayoutInflater实例                inflater = (LayoutInflater) this                        .getSystemService(LAYOUT_INFLATER_SERVICE);                // 这里的main布局是在inflate中加入的哦,以前都是直接this.setContentView()的吧?呵呵                // 该方法返回的是一个View的对象,是布局中的根                layout = inflater.inflate(R.layout.main_menu, null);                menuWindow = new PopupWindow(layout, LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); // menuWindow.showAsDropDown(layout); //设置弹出效果                // menuWindow.showAsDropDown(null, 0, layout.getHeight());                menuWindow.showAtLocation(this.findViewById(R.id.mainweixin),  // 整个布局的下面                         Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0); // 设置layout在PopupWindow中显示的位置                // 如何获取我们main中的控件呢?也很简单                mClose = (LinearLayout) layout.findViewById(R.id.menu_close);                mCloseBtn = (LinearLayout) layout                        .findViewById(R.id.menu_close_btn);                // 下面对每一个Layout进行单击事件的注册吧。。。                // 比如单击某个MenuItem的时候,他的背景色改变                // 事先准备好一些背景图片或者颜色                mCloseBtn.setOnClickListener(new View.OnClickListener() {                    @Override                    public void onClick(View arg0) {                        // Toast.makeText(Main.this, "退出",                        // Toast.LENGTH_LONG).show();                        Intent intent = new Intent();                        intent.setClass(MainWeixin.this, Exit.class);                        startActivity(intent);                        menuWindow.dismiss(); // 响应点击事件之后关闭Menu                    }                });                menu_display = true;            } else {  //显示了                // 如果当前已经为显示状态,则隐藏起来                menuWindow.dismiss();                menu_display = false;            }

 

PopupWindow --- 弹出底部窗体