Android Studio开发学习(十一)——PopupWindow

一、前提

PopupWindow作为一种提示信息相比较于AlertDialog而言,更加灵活

二、目标

PopupWindow

三、内容

1、首先构造布局文件

<?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:padding="10dp"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tv1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:text="good"
        android:gravity="center"
        android:textColor="#000000"

        />

    <View
        android:layout_width="match_parent"
        android:layout_height="0.5dp"
        android:background="#000000"
        />

    <TextView
        android:id="@+id/tv2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:text="just so so"
        android:gravity="center"
        android:textColor="#000000"
        android:padding="10dp"
        />

    <View
        android:layout_width="match_parent"
        android:layout_height="0.5dp"
        android:background="#000000"
        />

    <TextView
        android:id="@+id/tv3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:text="terrible"
        android:gravity="center"
        android:textColor="#000000"
        android:padding="10dp"
        />
</LinearLayout>

2、在MainActivity中添加

package com.example.sunny.popupwindow;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private Button button;
    private PopupWindow popupWindow;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button= (Button) findViewById(R.id.btn1);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                View view=getLayoutInflater().inflate(R.layout.content_main,null);
                TextView textView= (TextView) view.findViewById(R.id.tv1);
                textView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        popupWindow.dismiss();//先消失
                        Toast.makeText(MainActivity.this, "click...", Toast.LENGTH_SHORT).show();
                    }
                });
                popupWindow=new PopupWindow(view,button.getWidth(), ViewGroup.LayoutParams.WRAP_CONTENT);
                popupWindow.setOutsideTouchable(true);//点击外部区域会消失
                popupWindow.setFocusable(true);//点击按钮会消失
                popupWindow.showAsDropDown(button);//点击按钮时显示
            }
        });
    }
}

这是最简单的的一种显示信息情况,首先我们看到new PopupWindow()中有三个参数,分别是view,你要显示的这个提示的宽度和高度,其余代码我也已注释

四、总结

PopupWindow方法有很多,还需探索

原创文章 30 获赞 5 访问量 1899

猜你喜欢

转载自blog.csdn.net/qq_41890177/article/details/105692490
今日推荐