一、前提
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方法有很多,还需探索