You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vuetify折叠面板中设置Google字体图标

在Vuetify折叠面板中使用Google Material Symbols图标切换的解决方案

方法一:使用内置的expand-icon和collapse-icon插槽(推荐)

Vuetify的v-expansion-panel-title提供了专门的插槽用于自定义展开/折叠图标,完美适配Google Material Symbols的格式:

<v-expansion-panel-title>
  <!-- 自定义展开状态图标 -->
  <template v-slot:expand-icon>
    <span class="material-symbols-outlined">arrow_drop_down</span>
  </template>
  <!-- 自定义折叠状态图标 -->
  <template v-slot:collapse-icon>
    <span class="material-symbols-outlined">arrow_drop_up</span>
  </template>
  
  面板标题内容
</v-expansion-panel-title>

这个方案无需手动处理状态切换,Vuetify会自动根据面板的展开/折叠状态渲染对应插槽的内容。

方法二:通过actions插槽结合状态控制

如果一定要用actions插槽,需要绑定面板的展开状态,通过条件渲染切换图标:

<v-expansion-panel v-model="isPanelExpanded">
  <v-expansion-panel-title>
    面板标题内容
    
    <template v-slot:actions>
      <!-- 根据展开状态显示对应图标 -->
      <span v-if="isPanelExpanded" class="material-symbols-outlined">arrow_drop_up</span>
      <span v-else class="material-symbols-outlined">arrow_drop_down</span>
    </template>
  </v-expansion-panel-title>
  
  <v-expansion-panel-content>
    面板内容区域
  </v-expansion-panel-content>
</v-expansion-panel>

在组件的脚本部分定义状态变量:

export default {
  data() {
    return {
      isPanelExpanded: false
    }
  }
}

你之前的写法问题说明

你之前的代码会同时显示两个图标,是因为没有添加状态判断逻辑,两个<span>元素会一直处于渲染状态。通过v-if/v-else可以确保只显示当前状态对应的图标。

内容的提问来源于stack exchange,提问作者angularNoob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 08:04:57