自定义组件结合了CircularFloatingActionMenu之后出现过很多bug,所以想借csdn这个平台做一下笔记。
效果图 :
1,自定义控件view_settelment.xml文件:
<TextView
android:id="@+id/tvSettlement"
style="@style/w22"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerInParent="true"
android:layout_marginBottom="11dp"
android:background="@drawable/owe_circle_btn_green"
android:gravity="center"
android:text="按钮" />
2,自定义控件SettlementView.java文件:
public class SettlementView extends RelativeLayout implements View.OnClickListener, FloatingActionMenu.MenuStateChangeListener {
private Context mContext;
private TextView tvSettlement;
private View cash, qrCode, refuse;
private RelativeLayout rlQRCode;
private RelativeLayout rlCash;
private RelativeLayout rlRefuse;
private FloatingActionButton floatButton;
private FloatingActionMenu floatMenu;
private ImageView fabIconNew;
private OnItemClickListener onItemClickListener;
private ShowBGListener showBGListener;
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
public void setShowBGListener(ShowBGListener showBGListener) {
this.showBGListener = showBGListener;
}
public SettlementView(Context context, AttributeSet attrs) {
super(context, attrs);
this.mContext = context;
//todo:加载布局
LayoutInflater.from(context).inflate(R.layout.view_settelment, this);
//todo:获取控件
tvSettlement = (TextView) findViewById(R.id.tvSettlement);
tvSettlement.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showBGListener.ShowBGListener();
initViews();
initData();
initListener();
showFloat();
}
});
}
private void initViews() {
cash = View.inflate(mContext, R.layout.item_cash, null);
rlCash = (RelativeLayout) cash.findViewById(R.id.rlCash);
qrCode = View.inflate(mContext, R.layout.item_qr_code, null);
rlQRCode = (RelativeLayout) qrCode.findViewById(R.id.rlQRCode);
refuse = View.inflate(mContext, R.layout.item_refuse, null);
rlRefuse = (RelativeLayout) refuse.findViewById(R.id.rlRefuse);
}
public void initData() {
fabIconNew = new ImageView(mContext);
fabIconNew.setImageDrawable(getResources().getDrawable(R.mipmap.owe_fork));
floatButton = new FloatingActionButton.Builder(mContext)
.setContentView(fabIconNew)
.build();
floatMenu = new FloatingActionMenu.Builder(mContext)
.addSubActionView(refuse)
.addSubActionView(cash)
.addSubActionView(qrCode)
.attachTo(floatButton)