2017-02-25 2 views
0

Je ne connais pas encore le développement Android et j'aimerais obtenir des informations sur un problème d'interface utilisateur. J'ai besoin d'une liste de choses, dont chacune est numérotée (jusqu'à ~ 20 items), et chacune ayant 1-4 "subitems", un peu comme montré dans le sketch (sauf correctement aligné). Le nombre est supposé agir comme un gros bouton, et la partie du sous-élément vers la droite est supposée agir comme un autre gros bouton (les deux zones cliquables pour chaque ligne sont affichées avec des cases rouges). Ma question alors, est, quelle serait la manière idéale, la plus androïde de construire une telle interface?Création d'une interface utilisateur/mise en page pour une liste semblable à une table où les cellules sont des boutons

rough layout

J'ai actuellement un travail de démonstration très simple, construit avec TableLayout dans un ScrollView, où chaque TableRow est deux colonnes de large (la première cellule contenant le numéro dans un seul TextView, et le second contenant LinearLayout de TextViews, un pour chaque sous-élément); cependant, j'ai quelques problèmes:

  • Seulement les TextViews (pas le remplissage environnant) sont cliquables; Je voudrais toute boîte rouge pour être cliquable, mais seulement la boîte verte est en fait

  • Il n'y a pas d'animations cliquez

  • Je n'ai même pas essayé de faire de la zone de sous-élément cliquable encore, mais il semble moi que je devrais au moins rendre chaque sous-élément (TextView) cliquable (ce qui impliquerait d'ajouter le gestionnaire de clic à chaque sous-élément séparément), et que même alors j'aurais le problème de seulement le TextView lui-même étant cliquable, pas le cellule entière

Certaines options auxquelles j'ai pensé:

  • Utilisez les boutons plats au lieu de TextViews pour les nombres sur la gauche; cela prendrait soin du côté animation/feedback, mais je ne suis pas sûr que cela corrigerait le problème du padding ne pouvant pas être cliqué, ou comment cela fonctionnerait dans la colonne subitem

  • Utiliser un ListView au lieu de TableLayout ; Je ne sais pas de quel genre de magie noire je devrais faire tous les boutons sur la gauche de la même taille/aligner les listes de sous-éléments, et je ne saurais toujours pas comment faire le nombre assez grand pour que l'utilisateur gagne ' manquez pas accidentellement

  • une autre bonne solution que je ne l'ai pas encore pensé, qui ne comporte pas de shoehorning et des solutions de contournement laides

que faire? Est-ce que mon approche actuelle est déjà bonne, j'ai juste besoin de quelques réglages faciles que je ne connais pas encore?

+0

vous pouvez consulter si vous voulez seulement ajouter de l'animation dans textViews http://stackoverflow.com/a/34128965/6171845 –

Répondre

1

Vous pouvez ajouter le bouton sur votre programme comme celui-ci demande

public void AddAll() { 
final RelativeLayout rl = (RelativeLayout)findViewById(R.id.rel); 

for(int i=0;i<4;i++) 
{ 
    final Button btn = new Button(this); 
    rl.addView(btn); 
    btn.setText("Button"); 

    btn.setWidth(320); 
    btn.setHeight(40); 
} 

}