Android 는 PopupWindow 를 간단하게 사용 하 는 방법

4854 단어 AndroidPopupWindow
본 논문 의 사례 는 안 드 로 이 드 가 PopupWindow 를 간단하게 사용 하 는 구체 적 인 코드 를 공유 하 였 으 며,구체 적 인 내용 은 다음 과 같다.
사고의 방향
1.res 아래 에 menu 폴 더 를 만 들 고 PoupWindow 의 레이아웃 파일 로 xml 파일 을 새로 만 듭 니 다.
2.Activity 에서 레이아웃 충전기 메뉴 레이아웃 불 러 오기
3.PopupWindow 대상 을 만 들 고 내용 및 애니메이션 설정
4.메뉴 레이아웃 에서 컨트롤 이 해 야 할 동작 설정
menu 메뉴 레이아웃:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:background="#eaeaea"
 android:orientation="vertical">

 <Button
 android:id="@+id/bt1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_marginTop="10dp"
 android:text="   " />

 <Button
 android:id="@+id/bt2"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_marginTop="10dp"
 android:text="   " />

 <Button
 android:id="@+id/bt3"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_marginTop="10dp"
 android:text="   " />
</LinearLayout>
정의 애니메이션:
styles 자원 파일 에 style 계승 android:Animation 을 쓰 고 출입 효 과 를 설정 합 니 다.
내용 은 res 아래 anim 자원 폴 더 의 자원 파일 을 참조 합 니 다.
popuwidow 에 애니메이션 연결 하기
styles 자원 파일

res 아래 에 anim 자원 폴 더 만 들 기
anim 자원 파일


popupwindow 바 인 딩 애니메이션 popupWindow.setAnimationStyle(R.style.www);
Activity

public class MainActivity extends AppCompatActivity {
 private Button bt;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 bt = findViewById(R.id.bt);
 }

 public void click(View view) { //    
 View inflate = LayoutInflater.from(this).inflate(R.layout.menu, null); //           
 Button bt1 = inflate.findViewById(R.id.bt1);
 Button bt2 = inflate.findViewById(R.id.bt2);
 Button bt3 = inflate.findViewById(R.id.bt3);
 /**
 *   PopupWindow       ,  ,  ,    
 *    :             PopupWindow popupWindow = new PopupWindow(inflate, 200, ViewGroup.LayoutParams.WRAP_CONTENT,true);
 *       setContentView,setHeight,setWidth    
 *           ViewGroup.LayoutParams.WRAP_CONTENT
 **/
 final PopupWindow popupWindow = new PopupWindow(inflate, 200, ViewGroup.LayoutParams.WRAP_CONTENT);
 popupWindow.setOutsideTouchable(true); //            
 popupWindow.setAnimationStyle(R.style.www); //         
 //         
 WindowManager.LayoutParams attributes = getWindow().getAttributes();
 attributes.alpha = 0.5f;
 getWindow().setAttributes(attributes);
 //               
 popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
 @Override
 public void onDismiss() {
 WindowManager.LayoutParams attributes = getWindow().getAttributes();
 attributes.alpha = 1;
 getWindow().setAttributes(attributes);
 }
 });
 //       
 bt1.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 popupWindow.dismiss();
 Toast.makeText(MainActivity.this, "   ", Toast.LENGTH_SHORT).show();


 }
 });
 bt2.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 popupWindow.dismiss();
 Toast.makeText(MainActivity.this, "   ", Toast.LENGTH_SHORT).show();

 }
 });
 bt3.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 popupWindow.dismiss();
 Toast.makeText(MainActivity.this, "   ", Toast.LENGTH_SHORT).show();

 }
 });
 /**
 *   popupwidow    
 * 1.howAsDropDown     ,    :1     2.x     3.y    
 * 2.showAtLocation           1      2.      3.x     4.y    
 *
 **/
 // popupWindow.showAsDropDown(bt,0,0);
 popupWindow.showAtLocation(bt, Gravity.CENTER, 0, 0);
 }
}

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기