Popupwindowdemo
生活随笔
收集整理的這篇文章主要介紹了
Popupwindowdemo
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
ShowPopupWindow:
package?com.example.popupwindowdemo; import?android.app.Activity; import?android.os.Bundle; import?android.view.Gravity; import?android.view.View; import?android.view.ViewGroup; import?android.widget.Button; import?android.widget.PopupWindow; public?class?ShowPopupWindow?extends?Activity?implements?View.OnClickListener?{View?view;PopupWindow?pop;Button?bt1,bt2,bt3;@Overrideprotected?void?onCreate(Bundle?savedInstanceState)?{//?TODO?Auto-generated?method?stubsuper.onCreate(savedInstanceState);setContentView(R.layout.popup_activity);bt1?=?(Button)?findViewById(R.id.btnShowAsDrawDown);bt1.setOnClickListener(this);bt2?=?(Button)?findViewById(R.id.btnShowAsDrawDown1);bt2.setOnClickListener(this);bt3?=?(Button)?findViewById(R.id.btnShowAt);bt3.setOnClickListener(this);initPopupWindow();}@Overridepublic?void?onClick(View?v)?{//?TODO?Auto-generated?method?stubswitch?(v.getId())?{case?R.id.btnShowAsDrawDown:if?(pop.isShowing())?{pop.dismiss();}?else?{pop.showAsDropDown(v);}break;case?R.id.btnShowAsDrawDown1:if?(pop.isShowing())?{pop.dismiss();}?else?{pop.showAsDropDown(v,?0,?-160);}break;default:if?(pop.isShowing())?{pop.dismiss();}?else?{pop.showAtLocation(findViewById(R.id.main),Gravity.CENTER_HORIZONTAL,?0,?0);}break;}}private?void?initPopupWindow()?{view?=?this.getLayoutInflater().inflate(R.layout.popup_window,?null);pop?=?new?PopupWindow(view,?ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);pop.setOutsideTouchable(true);view.setOnClickListener(new?View.OnClickListener()?{@Overridepublic?void?onClick(View?v)?{//?TODO?Auto-generated?method?stubpop.dismiss();}});} }popup_activity:
<?xml?version="1.0"?encoding="utf-8"?> <LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/main"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"?><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="pop?展示"?/><Buttonandroid:id="@+id/btnShowAsDrawDown"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="第一個"?/><Buttonandroid:id="@+id/btnShowAsDrawDown1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="第二個"?/><Buttonandroid:id="@+id/btnShowAt"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="第三個"?/> </LinearLayout>popup_window:
<?xml?version="1.0"?encoding="utf-8"?> <LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="#d3d3d3"android:gravity="center_horizontal"android:orientation="vertical"?><Buttonandroid:id="@+id/btn_pop"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="10dip"android:text="哈哈哈"?/> </LinearLayout> <?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="wrap_content"android:background="#FFBBFFBB"android:orientation="vertical"?><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:padding="10dp"android:text="Hello?My?Window"android:textSize="20sp"?/><Buttonandroid:id="@+id/button1"android:layout_width="match_parent"android:layout_height="wrap_content"android:padding="10dp"android:text="Button"android:textSize="20sp"?/> </LinearLayout> 彈出框布局 package?com.example.popopupwindowdemo; import?android.os.Bundle; import?android.app.Activity; import?android.content.Context; import?android.util.Log; import?android.view.LayoutInflater; 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?MainActivity?extends?Activity?{private?Context?mContext?=?null;@Overrideprotected?void?onCreate(Bundle?savedInstanceState)?{super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mContext?=?this;Button?button?=?(Button)?findViewById(R.id.button);button.setOnClickListener(new?View.OnClickListener()?{@Overridepublic?void?onClick(View?view)?{showPopupWindow(view);}});}private?void?showPopupWindow(View?view)?{//?一個自定義的布局,作為顯示的內容View?contentView?=?LayoutInflater.from(mContext).inflate(R.layout.pop_window,?null);//?設置按鈕的點擊事件Button?button?=?(Button)?contentView.findViewById(R.id.button1);button.setOnClickListener(new?OnClickListener()?{@Overridepublic?void?onClick(View?v)?{Toast.makeText(mContext,?"button?is?pressed",Toast.LENGTH_SHORT).show();}});final?PopupWindow?popupWindow?=?new?PopupWindow(contentView,LayoutParams.WRAP_CONTENT,?LayoutParams.WRAP_CONTENT,?true);popupWindow.setTouchable(true);popupWindow.setTouchInterceptor(new?OnTouchListener()?{@Overridepublic?boolean?onTouch(View?v,?MotionEvent?event)?{Log.i("mengdd",?"onTouch?:?");return?false;//?這里如果返回true的話,touch事件將被攔截//?攔截后?PopupWindow的onTouchEvent不被調用,這樣點擊外部區域無法dismiss}});//?如果不設置PopupWindow的背景,無論是點擊外部區域還是Back鍵都無法dismiss彈框//?我覺得這里是API的一個bugpopupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.selectmenu_bg_downward));//?設置好參數之后再showpopupWindow.showAsDropDown(view);} }轉載于:https://my.oschina.net/u/1994482/blog/425384
總結
以上是生活随笔為你收集整理的Popupwindowdemo的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从FTP服务器进行文件的上传和下载
- 下一篇: HTC Vive会是HTC的下一个增长引