目录
效果图
Activity代码
@OnClick({R.id.search_type})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.search_type:
//调用显示PopupWindow
showPopupWindow();
break;
}
}
private void showPopupWindow() {
//解析PopupWindow的布局
View contentView = LayoutInflater.from(getActivity()).inflate(R.layout.type_view, null);
mPopWindow = new PopupWindow(contentView,
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
mPopWindow.setContentView(contentView);
//点击外部是否消失
//必须两个一起 否则无效
mPopWindow.setBackgroundDrawable(new BitmapDrawable());
mPopWindow.setOutsideTouchable(true);
//设置各个控件的点击响应
LinearLayout type_all = contentView.findViewById(R.id.type_all);
ImageView type_all_pic = contentView.findViewById(R.id.type_all_pic);
LinearLayout type_mz = contentView.findViewById(R.id.type_mz);
ImageView type_mz_pic = contentView.findViewById(R.id.type_mz_pic);
LinearLayout type_yq = contentView.findViewById(R.id.type_yq);
ImageView type_yq_pic = contentView.findViewById(R.id.type_yq_pic);
LinearLayout type_xh = contentView.findViewById(R.id.type_xh);
ImageView type_xh_pic = contentView.findViewById(R.id.type_xh_pic);
LinearLayout type_gj = contentView.findViewById(R.id.type_gj);
ImageView type_gj_pic = contentView.findViewById(R.id.type_gj_pic);
String type = searchTypeTv.getText().toString().trim();
if (type.equals("类型"))
type_all_pic.setVisibility(View.VISIBLE);
if (type.equals("名著"))
type_mz_pic.setVisibility(View.VISIBLE);
if (type.equals("言情"))
type_yq_pic.setVisibility(View.VISIBLE);
if (type.equals("玄幻"))
type_xh_pic.setVisibility(View.VISIBLE);
if (type.equals("工具"))
type_gj_pic.setVisibility(View.VISIBLE);
type_all.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
searchTypeTv.setText("类型");
mPopWindow.dismiss();
}
});
type_mz.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
searchTypeTv.setText("名著");
mPopWindow.dismiss();
}
});
type_yq.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
searchTypeTv.setText("言情");
mPopWindow.dismiss();
}
});
type_xh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
searchTypeTv.setText("玄幻");
mPopWindow.dismiss();
}
});
type_gj.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
searchTypeTv.setText("工具");
mPopWindow.dismiss();
}
});
//解析根布局
//View rootview = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_home, null);
//在根布局底部显示PopupWindow
//mPopWindow.showAtLocation(rootview, Gravity.BOTTOM, 0, 0);
//在某一控件底部显示PopupWindow
mPopWindow.showAsDropDown(searchType);
}
布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:paddingLeft="12dp"
android:paddingRight="12dp"
android:background="@drawable/shape_corners_white_fortype"
android:layout_height="wrap_content">
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/gray_qian"/>
<LinearLayout
android:id="@+id/type_all"
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingLeft="12dp"
android:gravity="center_vertical"
android:paddingRight="24dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:gravity="center_vertical"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="不限"/>
<ImageView
android:visibility="invisible"
android:id="@+id/type_all_pic"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@mipmap/ic_select_12a6d1"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/gray_qian"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingLeft="12dp"
android:gravity="center_vertical"
android:paddingRight="24dp"
android:id="@+id/type_mz"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:gravity="center_vertical"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="名著"/>
<ImageView
android:visibility="invisible"
android:id="@+id/type_mz_pic"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@mipmap/ic_select_12a6d1"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/gray_qian"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingLeft="12dp"
android:gravity="center_vertical"
android:paddingRight="24dp"
android:id="@+id/type_yq"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:gravity="center_vertical"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="言情"/>
<ImageView
android:visibility="invisible"
android:id="@+id/type_yq_pic"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@mipmap/ic_select_12a6d1"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/gray_qian"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingLeft="12dp"
android:id="@+id/type_xh"
android:gravity="center_vertical"
android:paddingRight="24dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:gravity="center_vertical"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="玄幻"/>
<ImageView
android:visibility="invisible"
android:id="@+id/type_xh_pic"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@mipmap/ic_select_12a6d1"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/gray_qian"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingLeft="12dp"
android:gravity="center_vertical"
android:paddingRight="24dp"
android:id="@+id/type_gj"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:gravity="center_vertical"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="工具"/>
<ImageView
android:visibility="invisible"
android:id="@+id/type_gj_pic"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@mipmap/ic_select_12a6d1"/>
</LinearLayout>
</LinearLayout>