2017-02-24 2 views
0

화면 하단에 버튼이 있어야하지만, 텍스트 필드를 탭하자마자 키보드가 나타나고 버튼을 들어 올립니다. 나는 버튼, 또 다른 stacklayout, 그것을 모두 포장하는 scrollview를 사용해 보았습니다 ... 아무것도 작동하지 않고 레이아웃을 올바르게 이해하지 못한다고 느낍니다. see?키보드 리프트 하단 버튼

그것은 그것 아래 위치의 유지 있도록이가있는 ScrollView해야한다는 나의 이해하지만 내가 추가 할 경우,>I want the gray button there

그러나 그것은 항상 키보드와 함께 제공 -

그것은 회색 버튼입니다 스크롤되도록 gridLayout에 대한 ScrollView가 작동하지 않습니다.

다음은 코드입니다. 미리 감사드립니다.

<ActionBar android:title="Entrega {{id}}/{{detalleRuta.delegacion}}/{{detalleRuta.tipoAlbaran}}"> 
    <ActionItem> 
     <Label *ngIf="!entrega.foto" cssClass="mdi icon-cam" [text]="'mdi-add-a-photo' | fonticon" ios.position="right" (tap)="getFoto()"></Label> 
     <Label *ngIf="entrega.foto" cssClass="mdi icon-cam" [text]="'mdi-photo' | fonticon" ios.position="right" (tap)="showFoto()"></Label> 
    </ActionItem> 
    <ActionItem> 
     <Label class="mdi icon-map" [text]="'mdi-event-busy' | fonticon" ios.position="right" (tap)="cancelarEntrega()"></Label> 
    </ActionItem> 
</ActionBar> 
<GridLayout rows="auto,*, 50" loaded="pageLoaded"> 
    <ListView row="0" [items]="detalle"> 
     <template let-item="item"> 
      <StackLayout orientation="vertical" class="info-entrega"> 
       <Label *ngIf="item.fechaActual" [text]="'Fecha ' + item.fechaActual"></Label> 
       <Label *ngIf="item.horaActual" [text]="'Hora ' + item.horaActual"></Label> 
      </StackLayout> 
     </template> 
    </ListView> 
    <TabView row="1" selectedIndex="0" selectedColor="#00B4E6" *ngIf="!noEntregado"> 
     <StackLayout *tabItem="{title: 'Cliente'}"> 
     <ScrollView> 
      <StackLayout class="formulario"> 
       <TextField [(ngModel)]="entrega.nombreCliente" hint="Nombre Cliente" keyboardType="text" autocorrect="false" autocapitalizationType="none"></TextField> 
       <TextField [(ngModel)]="entrega.DNICliente" hint="DNI Cliente" keyboardType="text" autocorrect="false" autocapitalizationType="none"></TextField> 
       <TextField [(ngModel)]="entrega.emailCliente" hint="Email Cliente" keyboardType="email" autocorrect="false" autocapitalizationType="none"></TextField> 
       <Button style="width:100%" class="btn {{ entrega.firmaCliente ? 'conFirma' : 'sinFirma' }}" text="Firma Cliente" (tap)="firmaCliente(false)"></Button> 
      </StackLayout> 
     </ScrollView> 
     </StackLayout> 
     <StackLayout *tabItem="{title: 'Empleado'}"> 
     <ScrollView> 
      <StackLayout class="form-config"> 
       <TextField class="input-config" [(ngModel)]="entrega.nombreEmpleado" hint="Nombre Empleado" keyboardType="text" autocorrect="false" autocapitalizationType="none"></TextField> 
       <TextField class="input-config" [(ngModel)]="entrega.DNIEmpleado" hint="Dni Empleado" keyboardType="text" autocorrect="false" autocapitalizationType="none"></TextField> 
       <Button style="width:100%" cssClass="btn {{ entrega.firmaEmpleado ? 'conFirma' : 'sinFirma' }}" text="Firma Empleado" (tap)="firmaEmpleado(false)"></Button> 
      </StackLayout> 
     </ScrollView> 
     </StackLayout> 
     <StackLayout *tabItem="{title: 'Importes'}"> 
     <ScrollView *ngIf="detalleRuta.importePdte != 0"> 
      <StackLayout class="form-config"> 
       <StackLayout> 
        <Label *ngIf="entrega.impMetalico" class="impMetalico" [text]="'Metálico ' + impMetalicoCurrency"></Label> 
        <TextField id="impMetalico" keyboardType="number" [(ngModel)]="entrega.impMetalico" hint="Importe en Metálico" (textChange)="cambioMetalico($event)"></TextField> 
       </StackLayout> 

       <StackLayout> 
        <Label *ngIf="entrega.impTarjeta" class="impTarjeta" [text]="'Tarjeta ' + impTarjetaCurrency"></Label> 
        <TextField id="impTarjeta" keyboardType="number" [(ngModel)]="entrega.impTarjeta" hint="Importe en Tarjeta" (textChange)="cambioTarjeta($event)"></TextField> 
       </StackLayout> 

       <StackLayout> 
        <Label *ngIf="entrega.impVale" class="impVale" [text]="'Vale ' + impValeCurrency"></Label> 
        <TextField id="impVale" keyboardType="number" [(ngModel)]="entrega.impVale" hint="Importe en Vale" (textChange)="cambioVale($event)"></TextField> 
       </StackLayout> 

       <StackLayout> 
        <Label *ngIf="entrega.impOtros" class="impOtros" [text]="'Otros ' + impOtrosCurrency"></Label> 
        <TextField id="impOtros" keyboardType="number" [(ngModel)]="entrega.impOtros" hint="Importe en Otros" (textChange)="cambioOtros($event)"></TextField> 
       </StackLayout> 

       <StackLayout> 
        <Label *ngIf="entrega.total" class="total" [text]="'Total ' + totalCurrency"></Label> 
       </StackLayout> 

       <StackLayout class="sumTotal"> 
        <Label *ngIf="sumTotal" class="total" [text]="'Total ' + sumTotal | myCurrency"></Label> 
       </StackLayout> 
      </StackLayout> 
     </ScrollView> 
     <StackLayout *ngIf="detalleRuta.importePdte == 0"> 
      <Label class="sinImporte" text="El importe Pendiente es de 0€"></Label> 
     </StackLayout> 
     </StackLayout> 
    </TabView> 
    <Button row="2" *ngIf="!noEntregado" class="btn" text="Confirmar Entrega" (tap)="submit()"></Button> 

    <StackLayout row="1" *ngIf="noEntregado"> 
    <ScrollView class="scrollView"> 
     <StackLayout class="form-config"> 
      <Label *ngIf="desc" class="desc" text="{{desc}}"></Label> 
      <Button style="width:100%" text="Motivo" (tap)="getMotivos()"></Button> 
      <StackLayout class="input-field"> 
       <TextView hint="Observación." returnKeyType="send" [(ngModel)]="entrega.obsNoEntrega" editable="true" class="input input-border"></TextView> 
      </StackLayout> 
      <Button class="btn" text="Cancelar Entrega" (tap)="cancel()"></Button> 
     </StackLayout> 
    </ScrollView> 
    </StackLayout> 
</GridLayout> 
<ActivityIndicator class="activity-indicator" width="100" [busy]="isLoading" height="100"></ActivityIndicator> 
+0

당신은'이동을 시도 할 수 있습니다 <버튼 클래스 = "BTN"텍스트 = "또는 취소 Entrega"(탭) = "취소()">'은'ScrollView' 외부. 당신은'ScrollView' 부모'StackLayout'에서 그것을 움직일 수 있습니다. –

답변

0

텍스트 필드가 포커스를 얻는 동안 버튼을 누르지 않도록 키보드를 관리하는 방법입니다.

<StackLayout> 
<ScrollView > 
<CardView shadowColor="#FE00FC" elevation="20" id="container" row="1"> 
    <GridLayout rows="auto auto auto auto auto auto auto"> 
     <TextField row="1" hint="User Name" keyboardType="email" autocorrect="false" autocapitalizationType="none" returnKeyType="next" [(ngModel)]="user.name"></TextField> 
     <TextField row="2" hint="Password" id="pass" keyboardType="email" secure="true" [(ngModel)]="user.password"></TextField> 

     <Button row="3" text="Login" class="submit-button" (tap)="submit()"></Button> 
    </GridLayout> 
</CardView> 
</ScrollView> 
</StackLayout> 
관련 문제