重新定位 material 自动完成弹出图标

Re-Position material autocomplete popup icon

我正在寻找一种方法来将自定义按钮添加到 material 自动完成的末尾。问题是弹出图标的样式似乎位于自动完成输入的末尾。

这种样式会导致类似下面的内容,它会阻止在自动完成的末尾放置一个按钮。

但我想要下面这样的东西。

我添加此按钮的方式是覆盖自动完成文本字段的 endAdornment。

renderInput={(params) => (
  <TextField
    {...params}
    label={label}
    variant="outlined"
    InputProps={{
      ...params.InputProps,
      endAdornment: (
        <>
          <InputAdornment position="end">
            <IconButton icon="search" style={{ padding: '2px' }} />
          </InputAdornment>
          {params.InputProps.endAdornment}
        </>
      ),
    }}
  />
)}

有什么办法吗?

当检查 Autocomplete 元素时,您可以看到有一个巨大的 padding-left 应用于 Autocomplete-inputRoot 元素,推开您正在使用的 TextField 元素作为 renderInput。因此,您需要覆盖该填充。要移动自动完成 popupIcon 你需要覆盖 left css 属性

const Autocomplete = withStyles({
  inputRoot: {
    padding: "16px !important",

    '&[class*="MuiOutlinedInput-root"] .MuiAutocomplete-endAdornment': {
      left: 32, // probably the width of your search IconButton or more if needed
    },
  },
})(MuiAutocomplete);

请注意,您可以使用这种风格来获得最佳效果