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;
}
});
}
});
}
}
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.