zoukankan      html  css  js  c++  java
  • 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;
                }
  • 相关阅读:
    安卓组件service
    安卓组件-BroadcastReceiver
    【bug】java.lang.NoSuchMethodError: android.widget.TextView.setBackground
    【转】安卓毛玻璃效果
    INSTALL_FAILED_UPDATE_INCOMPATIBLE
    安卓 异步线程更新Ui
    OC语言-03-OC语言-三大特性
    OC语言-02-OC语言-基础知识
    OC语言-01-面向过程与面向对象思想
    C语言-07-预处理、typedef、static和extern
  • 原文地址:https://www.cnblogs.com/java-g/p/4149677.html
Copyright © 2011-2022 走看看