简单的实现PopuWindow
对于PopuWindow的使用,有时候我们其实不需要那么复杂,简单的实现就好了.当然对于大神们的自定义,我还是比较钦佩的.
下面呢 我做了一个简单的小Dome.如果猿友们不想用自定义时,可以借鉴一下下.
1.布局文件
其实布局很简单,
<Button android:id="@+id/bt_mune" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:onClick="showPop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="24sp" android:text="菜单"/>就一个Button的按钮
pop_item的布局也很简单
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="10dp"> <TextView android:layout_margin="10dp" android:id="@+id/tv_cumputer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="计算机"/> <View android:layout_width="match_parent" android:layout_height="2dp" android:background="#e6e6e6"/> <TextView android:layout_margin="10dp" android:id="@+id/tv_jinRong" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="金融"/> <TextView android:layout_margin="10dp" android:id="@+id/tv_manage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="管理"/> </LinearLayout>当然这里的布局看大家的意思,可以随意更改布局
2.代码部分
public void showPop(View view) { /** * 首先第一个参数,contentView提供一个展示的内容视图 * 第二个参数是宽 * 第三个是高 * 这里我们做的是指定 popuwindow的视图 */ View contentView = View.inflate(this,R.layout.pop_item,null); PopupWindow popupWindow = new PopupWindow(contentView, ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT); /*popuWindow的属性,设置成true代表在popuwindow外部可以点击且popwindow会消失*/ popupWindow.setOutsideTouchable(true); /** * 在某一控件下边 anchor */ popupWindow.showAsDropDown(findViewById(R.id.bt_mune),0,0); /*查找popitem中的ID*/ TextView tv_cumputer = (TextView) contentView.findViewById(R.id.tv_cumputer); TextView tv_jinRong = (TextView) contentView.findViewById(R.id.tv_jinRong); TextView tv_manage = (TextView) contentView.findViewById(R.id.tv_manage); /*给查找到的ID设置点击事件*/ tv_cumputer.setOnClickListener(this); tv_jinRong.setOnClickListener(this); tv_manage.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.tv_cumputer: //成功后的吐丝 Toast.makeText(MainActivity.this, "点击了计算机", Toast.LENGTH_SHORT).show(); break; case R.id.tv_jinRong: //成功后的吐丝 Toast.makeText(MainActivity.this, "点击了金融", Toast.LENGTH_SHORT).show(); break; case R.id.tv_manage: //成功后的吐丝 Toast.makeText(MainActivity.this, "点击了管理", Toast.LENGTH_SHORT).show(); break; } }