摘要:在經(jīng)常使用,效果跟效果類似,不同點(diǎn)在于可以控制顯示的位置,比如底部顯示等。至此,本篇已結(jié)束,如有不對的地方,歡迎您的建議與指正。同時期待您的關(guān)注,感謝您的閱讀,謝謝
極力推薦文章:歡迎收藏
Android 干貨分享
本篇文章主要介紹 Android 開發(fā)中的部分知識點(diǎn),通過閱讀本篇文章,您將收獲以下內(nèi)容:
PopupWindow 繼承關(guān)系
PopupWindow 使用方法
PopupWindow 底部PopupWindow的實(shí)現(xiàn)
PopupWindow 是一個可以在Activity 之上顯示任意View的控件。在Android經(jīng)常使用,效果跟Dialog 效果類似,不同點(diǎn)在于可以控制顯示的位置,比如底部顯示等。
1. PopupWindow簡介 PopupWindow繼承關(guān)系如下:java.lang.Object ???? android.widget.PopupWindow2. 使用方法
主要是調(diào)用PopWindow的構(gòu)造方法,通過LayoutInflater 將Layout轉(zhuǎn)換成View,然后將View 傳遞過去,既可以實(shí)現(xiàn),具體可以參考PopupWindow 源碼,源碼路徑如下:framework/base/core/java/android/widget/PopupWindow.java
3. 底部PopupWindow的實(shí)現(xiàn)PopupWindow實(shí)現(xiàn)效果
PopWindow 實(shí)現(xiàn)類
public class PopWindowMethods extends Activity { private View mPopView; private PopupWindow mPopupWindow; private Button btn_pop_ok; private Button btn_pop_cancel; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_popwindow); InitPopWindow(); InitView(); InitClick(); } /** * */ private void InitClick() { // TODO Auto-generated method stub btn_pop_ok.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "ok", 0).show(); } }); btn_pop_cancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "cancel", 0).show(); } }); } /** * */ private void InitPopWindow() { // TODO Auto-generated method stub // 將布局文件轉(zhuǎn)換成View對象,popupview 內(nèi)容視圖 mPopView = getLayoutInflater().inflate(R.layout.popwindow_layout, null); // 將轉(zhuǎn)換的View放置到 新建一個popuwindow對象中 mPopupWindow = new PopupWindow(mPopView, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); // 點(diǎn)擊popuwindow外讓其消失 mPopupWindow.setOutsideTouchable(true); // mpopupWindow.setBackgroundDrawable(background); } /** * */ private void InitView() { btn_pop_ok = (Button) mPopView.findViewById(R.id.btn_pop_ok); btn_pop_cancel = (Button) mPopView.findViewById(R.id.btn_pop_cancel); } @SuppressLint("NewApi") public void ShowPopWindow(View view) { if (mPopupWindow.isShowing()) { mPopupWindow.dismiss(); } else { // 設(shè)置PopupWindow 顯示的形式 底部或者下拉等 // 在某個位置顯示 mPopupWindow.showAtLocation(mPopView, Gravity.BOTTOM, 0, 30); // 作為下拉視圖顯示 // mPopupWindow.showAsDropDown(mPopView, Gravity.CENTER, 200, 300); } // Toast.makeText( // getApplicationContext(), // "Launcher:" // + PackageUtils.isLauncherAPK(getApplicationContext(), // "com.miui.home"), // 0).show(); } }
PopupWindow布局
至此、PopWindow 的使用方法基本結(jié)束。
至此,本篇已結(jié)束,如有不對的地方,歡迎您的建議與指正。同時期待您的關(guān)注,感謝您的閱讀,謝謝!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/75843.html
閱讀 1028·2021-09-26 09:55
閱讀 3591·2021-09-24 10:30
閱讀 1377·2021-09-08 09:36
閱讀 2558·2021-09-07 09:58
閱讀 610·2019-08-30 15:56
閱讀 776·2019-08-29 18:32
閱讀 3631·2019-08-29 15:13
閱讀 1848·2019-08-29 13:49