private PopupWindow popupWindow;
if (popupWindow == null) {
popupWindow = new PopupWindow(getApplicationContext());
View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.pop_account_detail, null);
RadioGroup radioGroup = view.findViewById(R.id.radioGroup);
radioGroup.check(R.id.all);
radioGroup.setOnCheckedChangeListener((group, checkedId) -> {
if (checkedId == R.id.all) {
ToastUtil.showToast("全部", mContext);
} else if (checkedId == R.id.income) {
ToastUtil.showToast("收入", mContext);
} else if (checkedId == R.id.expend) {
ToastUtil.showToast("支出", mContext);
}
popupWindow.dismiss();
});
popupWindow.setContentView(view);
popupWindow.setOutsideTouchable(true);
popupWindow.setBackgroundDrawable(new ColorDrawable(0));
popupWindow.showAsDropDown(binding.all, -dpToPx(6), 0);
} else {
popupWindow.showAsDropDown(binding.all, -dpToPx(6), 0);
}
xml:
<?xml version="1.0" encoding="utf-8"?>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/radioGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/pop_bg"
android:gravity="center_horizontal"
android:padding="6dp"
android:orientation="vertical">
<RadioButton
android:id="@+id/all"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:paddingStart="@dimen/dp_30"
android:paddingEnd="@dimen/dp_30"
android:textColor="@drawable/radio_text_color"
android:button="@null"
android:gravity="center"
android:textSize="14sp"
android:drawablePadding="@dimen/dp_30"
android:text="全部"
android:drawableEnd="@drawable/selector_radio" />
<RadioButton
android:id="@+id/income"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:textSize="14sp"
android:paddingStart="@dimen/dp_30"
android:paddingEnd="@dimen/dp_30"
android:textColor="@drawable/radio_text_color"
android:text="收入"
android:gravity="center"
android:drawablePadding="@dimen/dp_30"
android:button="@null"
android:drawableEnd="@drawable/selector_radio" />
<RadioButton
android:id="@+id/expend"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:textSize="14sp"
android:textColor="@drawable/radio_text_color"
android:paddingStart="@dimen/dp_30"
android:paddingEnd="@dimen/dp_30"
android:drawablePadding="@dimen/dp_30"
android:text="支出"
android:button="@null"
android:drawableEnd="@drawable/selector_radio" />
</RadioGroup>
radio_text_color.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/c_F57F4B" android:state_checked="true"/>
<item android:color="@color/black"/>
</selector>
selector_radio.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/radio_on" android:state_checked="true"/>
<item android:drawable="@mipmap/point"/>
</selector>