popupWindow
- 創建一個popupWindow物件,其中的引數為
(1)彈出的頁面的view
view = getLayoutInflater().inflate(R.layout.popup_window_view, null);拿到popupWindow相應的View的view物件
(2)寬度ViewGroup.LayoutParams.WRAP_CONTENT表示自適應
(3)高度 - 使用popupWindow物件的
popupWindow.showAsDropDown(v, 200, 200);引數1:popupWindow在引數一的view之下,引數二:x方向的偏移量,引數三:y方向的偏移量, - 實作:
點擊按鈕后彈出一個popupview,點擊相應的兩個按鈕上海和北京,一個顯示提示,一個顯示一個彈窗
public class MainActivity extends AppCompatActivity {
private Button button;
Button button_shanghai;
Button button_beijing;
PopupWindow popupWindow;
private View view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button_popupWindow);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//有多個構造方法,可以直接定義一些相應的屬性
//第一個引數是一個view
view = getLayoutInflater().inflate(R.layout.popup_window_view, null);
//拿到兩個按鈕
button_shanghai = (Button) view.findViewById(R.id.button_shanghai);
button_beijing = (Button) view.findViewById(R.id.button_beijing);
//第二個引數是寬和高ViewGroup.LayoutParams.MATCH_PARENT表示與父控制元件WRAP_CONTENT
popupWindow = new PopupWindow
(view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
//引數表示顯示在某一個view的下方,這里填入v表示放入按鈕的正下方
popupWindow.showAsDropDown(v, 200, 200);
button_shanghai.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "你去過上海嗎", Toast.LENGTH_SHORT).show();
popupWindow.dismiss();
}
});
button_beijing.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new
AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.li)
.setTitle("北京")
.setMessage("你去過北京嗎")
.create()
.show();
popupWindow.dismiss();
}
});
}
});
}
- 點擊按鈕之后彈出

- 點擊上海按鈕
PopupWindow消失且顯示提示

- 點擊北京按鈕
顯示一個彈窗,并且 PopupWindow消失

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/281444.html
標籤:其他
