2014-07-23 4 views
0

Dans un flextable, je crée des lignes avec des boutons dans la première colonne indiquant le numéro de chaque ligne et des zones de texte dans les autres colonnes.
Je souhaite réduire l'espace entre les lignes au minimum.Alignement et espacement des textes de boutons dans un flexible à l'aide de GAS

var btnField = app.createButton(numRow).setId(fieldId).setSize(20, 20) 
    .setStyleAttribute('marginBottom', 3).setStyleAttribute('marginTop', 0) 
    .setStyleAttribute('fontSize', 8).setText(numRow)); 

flextable.setCellSpacing(1).setCellPadding(1); //Minimum distance between rows ?? 

Problème concernant les boutons est que les textes ne sont pas au milieu des boutons verticalement. Je ne peux pas réduire la taille des boutons (en utilisant .setSize(20, 18) ou plus) car le texte deviendra hors des boutons en bas.

Quels attributs de style devrais-je utiliser pour positionner le texte des boutons au milieu des boutons verticalement, à droite alligned avec un petit marginRight? Les boutons eux-mêmes ne doivent pas dépasser la taille des zones de texte afin de minimiser les distances entre les lignes.

Si je dois utiliser les paramètres sur le flextable, ce sera bien sûr aussi.

Répondre

0

attributs de style doivent être rédigés dans camelCase, utilisez fontSize au lieu de fontsize et vous obtiendrez ceci:

enter image description here

qui est bien centré.


modifier: Je fait quelques essais sur l'alignement du texte du bouton et les résultats sont un peu surprenant ... Code et illustration ci-dessous montrent que seul l'alignement horizontal est faisable sur le contenu du texte et que paddingTop applique, mais a côté effets les autres widgets ainsi

function doGet() { 
    var app = UiApp.createApplication().setTitle('test buttons'); 
    var btn1 = app.createButton('test Button1').setPixelSize(200,60).setStyleAttributes({'fontFamily': 'serif','fontWeight': 'bold','fontSize':'14pt','text-align':'right'}); 
    var btn2 = app.createButton('test Button2').setPixelSize(200,30).setStyleAttributes({'fontSize':'12pt','textAlign':'left'}); 
    var btn3 = app.createButton('test Button3').setPixelSize(200,16).setStyleAttributes({'fontSize':'8pt','padding':'0px'}); 
    var btn4 = app.createButton('test Button4').setPixelSize(200,60).setStyleAttributes({'fontSize':'8pt','paddingTop':'30px'}); 
    app.add(btn1).add(btn2).add(btn3).add(btn4); 
    return app; 
} 

enter image description here

Un rembourrage od combinaison et verticalAlignment peut donner des résultats intéressants, voir ci-dessous:

var btn4 = app.createButton('testButton4').setPixelSize(200,60).setStyleAttributes({'fontSize':'8pt','paddingTop':'30px','vertical-align':'-11px'}); 

enter image description here

+0

Works En effet, merci. Mais la question fondamentale de «comment positionner le texte verticalement sur le bouton» reste (réponse non nécessaire maintenant). – SoftwareTester

Questions connexes