private void refreshItemState(int position) {
   for (int i = 0; i < mMenu.getVisibleItems().size(); i++) {
     MenuItemImpl menuItem = mMenu.getVisibleItems().get(i);
     if (i == position) {
       menuItem.setChecked(true);
     } else {
       menuItem.setChecked(false);
     }
     ToolsItemTextView tvItem = (ToolsItemTextView) getChildAt(i);
     tvItem.initialize(menuItem);
   }
 }
 private void init(Context context) {
   if (mMenu != null) {
     for (int i = 0; i < mMenu.getVisibleItems().size(); i++) {
       MenuItemImpl menuItem = mMenu.getVisibleItems().get(i);
       ToolsItemTextView tvItem = new ToolsItemTextView(context);
       tvItem.initialize(menuItem);
       addView(tvItem);
       final int position = i;
       tvItem.setOnClickListener(
           v -> {
             if (menuItem.isChecked()) {
               return;
             }
             refreshItemState(position);
             if (mOnToolItemClickListener != null) {
               mOnToolItemClickListener.onItemClick(menuItem.getItemId());
             }
           });
     }
   }
 }