代码之家  ›  专栏  ›  技术社区  ›  Govinda raj

如何将角度材质扩展面板箭头图标放置在左侧

  •  12
  • Govinda raj  · 技术社区  · 7 年前

    我已经在我的应用程序中将Angular Material升级到4.0。我正在使用 <mat-expansion-panel> 根据要求。展开箭头必须位于面板的左侧,但默认情况下它显示在右侧。我已经检查了align选项,但没有得到我需要的。

    <mat-expansion-panel expanded='true'>
       <mat-expansion-panel-header [ngClass]="tickets-container-header">
          <mat-panel-title>
             <div class="col-md-9">
             {{header}} 
             </div>
          </mat-panel-title>
    
       </mat-expansion-panel-header>
    </mat-expansion-panel>
    
    8 回复  |  直到 4 年前
        1
  •  23
  •   John    5 年前

    从角度材料8.1开始。x、 您可以使用 @Input() togglePosition -装饰师。

    The documentation states the following

    @Input()togglePosition:MatAccordionTogglePosition |扩展指示器的位置。

    将其添加到手风琴中,如下所示: <mat-accordion [togglePosition]="'before'">

    这是一个 Stackblitz with an example

        2
  •  20
  •   AddWeb Solution Pvt Ltd    7 年前

    首先,你们需要在应用程序中导入棱角材料图标和扩展面板模块。单元ts文件,

    import {MatExpansionModule,MatIconModule} from '@angular/material';
    ...
    @NgModule({
      ...
      imports: [
        MatExpansionModule,
        MatIconModule 
      ]
      ...
    })
    export class AppModule { }
    

    在HTML文件中添加此代码,

        <mat-expansion-panel expanded='true' hideToggle="true" (click)="click()">
          <mat-expansion-panel-header [ngClass]="tickets-container-header">
            <mat-panel-title>
                <mat-icon>{{icon  ? 'keyboard_arrow_down' : 'keyboard_arrow_up' }}</mat-icon>
                <div  class="col-md-9">
                {{header}} 
                </div>
            </mat-panel-title>
    
          </mat-expansion-panel-header>
        </mat-expansion-panel>
    

    将此代码添加到组件文件中,

    icon: boolean = false;
    
    click(){
        this.icon = !this.icon;
      }
    

    谢谢

        3
  •  7
  •   TimTheEnchanter    6 年前

    仅使用css对我有效:

    .mat-expansion-indicator {
        position: absolute;
        left: 15px;
      }
    
        4
  •  2
  •   barbsan Cibi    5 年前

    不需要添加函数和变量。只需添加此样式:

    .mat-expansion-panel-header > span.mat-content {
        order: 2;    
    }
    
        5
  •  2
  •   Ramy Alayane    4 年前

    只需在面板标题上添加类“mat expansion toggle indicator before”。例子:

    <mat-expansion-panel>
    <mat-expansion-panel-header class="mat-expansion-toggle-indicator-before">
        <mat-panel-title>
            A title!
        </mat-panel-title>
    </mat-expansion-panel-header>
    

        6
  •  0
  •   Ajay Lingayat Ritesh Gupta    3 年前

    您可以使用 togglePosition 属性将切换箭头的位置设置为标题之前。

    <mat-expansion-panel expanded='true' togglePosition="before">
       <mat-expansion-panel-header [ngClass]="tickets-container-header">
          <mat-panel-title>
             <div class="col-md-9">
                {{header}} 
             </div>
          </mat-panel-title>
       </mat-expansion-panel-header>
    </mat-expansion-panel>
    

    它可以在文档的API部分中找到。 https://material.angular.io/components/expansion/api#MatAccordionTogglePosition

        7
  •  0
  •   Andreas Sturm    2 年前

    我发现了一些有趣的事情。 这个mat内容在整个屏幕上传播。 所以如果你想 既不在右边也不在左边 但相反,只是 就在你的“文本”旁边 从mat内容来看

    :host {
      ::ng-deep span.mat-content {
        flex: none;
      }
    }
    

    将flex设置为none。

    然后,mat内容的宽度与使用空间的跨度相同,mat指示器图标就在其旁边。

        8
  •  -1
  •   Thiago Lúcio    5 年前

    使用角度装饰符“@indicatorRotate”

       <mat-icon [@indicatorRotate]="expanded ? 'expanded': 'collapsed'">
         expand_more
      </mat-icon>