日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

安卓APP_ 控件(9)—— PopupWindow弹窗

發布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 安卓APP_ 控件(9)—— PopupWindow弹窗 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘自:安卓APP_ 控件(9)—— PopupWindow彈窗
作者:丶PURSUING
發布時間: 2021-04-05 14:41:35
網址:https://blog.csdn.net/weixin_44742824/article/details/115405555

實現效果如下:

點擊觸發彈窗的按鈕,彈窗出現。彈窗里的按鈕設置了監聽事件,當點擊“上海”時,彈窗不退出。點擊空白處彈窗退出。因為“北京”設置了“dismiss”,所以點擊“北京”直接退出彈窗。


具體細節還是通過代碼呈現:

MainActivity.java

public class MainActivity extends AppCompatActivity {private static final String TAG = "zhua";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void zhuaClick(View view) {/*第一個參數contentView:彈窗顯示的布局,在此之前要在layout創建布局.xml*/View popupView = getLayoutInflater().inflate(R.layout.popup_view, null);//添加view//為了實現popupWindow中的按鈕事件,要先獲取按鈕監聽Button btn1 = popupView.findViewById(R.id.btn1);Button btn2 = popupView.findViewById(R.id.btn2);/*1.為了方便,都用帶3參或者4參的構造方法,否則后面還要用對象進行設置2.根據popupWindow的一個構造方法進行配置,寬、高可以直接寫數字,比如300,300但是為了讓popupWindow剛好包裹住popupView,一般如下設置:跟xml中類似,都是為了內容適應窗口3.true為獲取焦點,即點空白處可以退出popupWindow*/PopupWindow popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT,true);/*設置這個背景會導致虛擬機崩潰?*///popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.test1));/*1.想要顯示彈窗,還要調用show.2.view指的是“彈出PopupWindow”按鈕,一般不使用偏移,直接顯示在正下方。popupWindow.showAsDropDown(view,view.getWidth(),view.getHeight());*/popupWindow.showAsDropDown(view);//彈窗直接顯示在view的正下方//設置按鈕監聽btn1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Log.e(TAG, "onClick: 你是住在上海嗎" );}});btn2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Log.e(TAG, "onClick: 你是住在北京嗎" );//一般popupWindow按鈕事件點擊一個選項window就消失:popupWindow.dismiss();}});/*其他:設置popupwindow顯示動畫,只需要傳入后續所學的動畫.xml就行popupWindow.setAnimationStyle(int animationStyle);*/} }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56

activity_main.xml

<?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:orientation="vertical"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="彈出PopupWindow "android:onClick="zhuaClick"/></LinearLayout>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

在res下的layout創建的:popup_view.xml

<?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="@mipmap/ic_launcher"android:orientation="vertical"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/btn1"android:padding="10dp"android:text="上海"android:textSize="18sp"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/btn2"android:padding="10dp"android:text="北京"android:textSize="18sp"/></LinearLayout>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

總結

以上是生活随笔為你收集整理的安卓APP_ 控件(9)—— PopupWindow弹窗的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。