国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android 中Popwindow彈出菜單的兩種方法實(shí)例

2019-10-23 18:34:16
字體:
供稿:網(wǎng)友

AndroidPopwindow彈出菜單的兩種方法實(shí)例

1.popWindow就是對話框的一種方式!

此文講解的android中對話框的一種使用方式,它叫popWindow。

2、popWindow的特性

Android的對話框有兩種:PopupWindow和AlertDialog。它們的不同點(diǎn)在于:

AlertDialog的位置固定,而PopupWindow的位置可以隨意。

AlertDialog是非阻塞線程的,而PopupWindow是阻塞線程的。

PopupWindow的位置按照有無偏移分,可以分為偏移和無偏移兩種;按照參照物的不同,可以分為相對于某個(gè)控件(Anchor錨)和相對于父控件。

實(shí)例代碼:

方法一的Activity

package com.app.test02;  import android.app.Activity; import android.os.Bundle; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnTouchListener; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.PopupWindow; import android.widget.Toast;  public class PopwindowLeft extends Activity {   // 聲明PopupWindow對象的引用   private PopupWindow popupWindow;    /** Called when the activity is first created. */   @Override   public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_popupwindow_main);     // 點(diǎn)擊按鈕彈出菜單     Button pop = (Button) findViewById(R.id.popBtn);     pop.setOnClickListener(popClick);   }    // 點(diǎn)擊彈出左側(cè)菜單的顯示方式   OnClickListener popClick = new OnClickListener() {     @Override     public void onClick(View v) {       // TODO Auto-generated method stub       getPopupWindow();       // 這里是位置顯示方式,在屏幕的左側(cè)       popupWindow.showAtLocation(v, Gravity.LEFT, 0, 0);     }   };    /**    * 創(chuàng)建PopupWindow    */   protected void initPopuptWindow() {     // TODO Auto-generated method stub     // 獲取自定義布局文件activity_popupwindow_left.xml的視圖     View popupWindow_view = getLayoutInflater().inflate(R.layout.activity_popupwindow_left, null,         false);     // 創(chuàng)建PopupWindow實(shí)例,200,LayoutParams.MATCH_PARENT分別是寬度和高度     popupWindow = new PopupWindow(popupWindow_view, 200, LayoutParams.MATCH_PARENT, true);     // 設(shè)置動(dòng)畫效果     popupWindow.setAnimationStyle(R.style.AnimationFade);     // 點(diǎn)擊其他地方消失     popupWindow_view.setOnTouchListener(new OnTouchListener() {       @Override       public boolean onTouch(View v, MotionEvent event) {         // TODO Auto-generated method stub         if (popupWindow != null && popupWindow.isShowing()) {           popupWindow.dismiss();           popupWindow = null;         }         return false;       }     });   }   /***    * 獲取PopupWindow實(shí)例    */   private void getPopupWindow() {     if (null != popupWindow) {       popupWindow.dismiss();       return;     } else {       initPopuptWindow();     }   } } 

方法二的Activity

package com.app.test02;  import android.app.Activity; import android.os.Bundle; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnTouchListener; import android.view.ViewGroup.LayoutParams; import android.widget.PopupWindow;  public class PopwindowLeftNew extends Activity{   private PopupWindow popupWindow;   @Override   protected void onCreate(Bundle savedInstanceState) {     // TODO Auto-generated method stub     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_popupwindow_main);          findViewById(R.id.popBtn).setOnClickListener(new OnClickListener() {       @Override       public void onClick(View v) {         // TODO Auto-generated method stub         // 獲取自定義布局文件activity_popupwindow_left.xml的視圖         View popupWindow_view = getLayoutInflater().inflate(R.layout.activity_popupwindow_left, null,false);         // 創(chuàng)建PopupWindow實(shí)例,200,LayoutParams.MATCH_PARENT分別是寬度和高度         popupWindow = new PopupWindow(popupWindow_view, 200, LayoutParams.MATCH_PARENT, true);         // 設(shè)置動(dòng)畫效果         popupWindow.setAnimationStyle(R.style.AnimationFade);         // 這里是位置顯示方式,在屏幕的左側(cè)         popupWindow.showAtLocation(v, Gravity.LEFT, 0, 0);         // 點(diǎn)擊其他地方消失         popupWindow_view.setOnTouchListener(new OnTouchListener() {           @Override           public boolean onTouch(View v, MotionEvent event) {             // TODO Auto-generated method stub             if (popupWindow != null && popupWindow.isShowing()) {               popupWindow.dismiss();               popupWindow = null;             }             return false;           }         });       }     });        } } 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關(guān)教程知識(shí)閱讀請移步到Android開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 井研县| 定兴县| 新和县| 唐海县| 诏安县| 于田县| 荣昌县| 甘德县| 随州市| 银川市| 太仆寺旗| 射阳县| 清涧县| 洛南县| 东兴市| 阳信县| 大洼县| 鸡泽县| 浦县| 丰台区| 嘉黎县| 南阳市| 台江县| 淮滨县| 闵行区| 聂拉木县| 涞水县| 新巴尔虎左旗| 彩票| 乌鲁木齐县| 搜索| 南城县| 临西县| 汤阴县| 南宫市| 福建省| 穆棱市| 东乡| 翁牛特旗| 开化县| 青浦区|