Android 에서 Popwindow 팝 업 메뉴 의 두 가지 방법 인 스 턴 스

Android 에서 Popwindow 팝 업 메뉴 의 두 가지 방법 인 스 턴 스
1.popWindow 는 대화 상자 의 한 방식 입 니 다!
이 글 에서 설명 한 안 드 로 이 드 대화 상자 의 사용 방식 은 popWindow 라 고 합 니 다.
2.popWindow 의 특성
Android 대화 상 자 는 두 가지 가 있 습 니 다.PopupWindow 와 AlertDialog 입 니 다.그들의 차이 점 은:
AlertDialog 의 위 치 는 고정 되 어 있 고 PopupWindow 의 위 치 는 마음대로 할 수 있 습 니 다.
AlertDialog 는 스 레 드 를 막 지 않 고 PopupWindow 는 스 레 드 를 막 습 니 다.
PopupWindow 의 위 치 는 유 무 오프셋 에 따라 오프셋 과 무 오프셋 두 가지 로 나 눌 수 있 습 니 다.참고 물 에 따라 특정한 컨트롤(Anchor 닻)과 부모 에 대한 컨트롤 로 나 눌 수 있 습 니 다.
인 스 턴 스 코드:
방법 1 의 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); 
    //          
    Button pop = (Button) findViewById(R.id.popBtn); 
    pop.setOnClickListener(popClick); 
  } 
 
  //               
  OnClickListener popClick = new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
      // TODO Auto-generated method stub 
      getPopupWindow(); 
      //          ,       
      popupWindow.showAtLocation(v, Gravity.LEFT, 0, 0); 
    } 
  }; 
 
  /** 
   *   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); 
    //   PopupWindow  ,200,LayoutParams.MATCH_PARENT         
    popupWindow = new PopupWindow(popupWindow_view, 200, LayoutParams.MATCH_PARENT, true); 
    //        
    popupWindow.setAnimationStyle(R.style.AnimationFade); 
    //          
    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   
   */ 
  private void getPopupWindow() { 
    if (null != popupWindow) { 
      popupWindow.dismiss(); 
      return; 
    } else { 
      initPopuptWindow(); 
    } 
  } 
} 

방법 2 의 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); 
        //   PopupWindow  ,200,LayoutParams.MATCH_PARENT         
        popupWindow = new PopupWindow(popupWindow_view, 200, LayoutParams.MATCH_PARENT, true); 
        //        
        popupWindow.setAnimationStyle(R.style.AnimationFade); 
        //          ,       
        popupWindow.showAtLocation(v, Gravity.LEFT, 0, 0); 
        //          
        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; 
          } 
        }); 
      } 
    }); 
     
  } 
} 
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기