Je développe un Android Application.
J'ai ceci:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="200px"
Android:orientation="vertical">
<TextView
Android:id="@+id/gameTitle"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:focusable="false"
Android:focusableInTouchMode="false"
Android:gravity="left"
Android:layout_margin="5px"
Android:text="aaaaa"/>
<TextView
Android:id="@+id/gameDescription"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:focusable="false"
Android:focusableInTouchMode="false"
Android:gravity="left"
Android:layout_margin="5px"
Android:typeface="sans"
Android:textSize="16sp"
Android:textStyle="bold"
Android:text="dddddd"/>
<TableLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/ButtonsTable"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal">
<TableRow
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<Button
Android:text="@string/yes"
Android:id="@+id/playGame"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"/>
<Button
Android:text="@string/no"
Android:id="@+id/noPlayGame"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"/>
</TableRow>
</TableLayout>
</LinearLayout>
Je veux mettre le bouton PlayGame sur le côté gauche du centre et le bouton NOPLAYGAME situé à droite du centre.
Maintenant, les deux apparaissent tous deux alignés à gauche du tumerow.
Comment puis-je faire ceci?
Merci.
[~ # ~] éditer [~ # ~ ~]: J'ai ajouté la disposition complète et les modifications suggérées par Ashay.
[.____] 2ème édition:
[.____] la solution
[.____] J'ai ajouté à TableLayout
ce qui suit: Android:stretchColumns="0,1"
. Maintenant, les boutons sont un centre aligné mais ils remplissent leur colonne entièrement !!!
J'espère que ça aide:
<TableRow
Android:id="@+id/tableRow1"
Android:layout_height="wrap_content"
Android:layout_gravity="center_horizontal"
Android:layout_width="wrap_content">
<Button
Android:id="@+id/button1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center_horizontal"
Android:text="@string/stringtxt1"></Button>
<Button
Android:id="@+id/button2"
Android:layout_width="wrap_content"
Android:text="@string/stringtxt2"
Android:layout_height="wrap_content"
Android:layout_gravity="center|center_horizontal"></Button>
</TableRow>
J'ai posté mon code, j'espère que cela aidera les autres utilisateurs à résoudre leurs problèmes (contenu central). Je voulais centrer deux boutons de la rangée de table, voici mon code qui résout ce problème:
nous indiquons quelles colonnes seront étirées dans prop android: strechcolumns = "A, B .." Utilisation de la liste délimitée des virgules
<TableLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/buttonGroup"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:stretchColumns="0,1" >
<TableRow>
<Button
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/button1"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:text="@string/button1Name"
Android:layout_gravity="right"/>
<Button
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/button2"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:text="@string/button2Name"
Android:layout_gravity="left"/>
</TableRow>
</TableLayout>
J'espère que cela aidera. Désolé pour mon anglais :/
Pour centrer un seul bouton sur une seule ligne:
<TableRow Android:id="@+id/rowNameHere"
Android:layout_height="wrap_content"
Android:layout_width="wrap_content"
Android:gravity="center">
<Button Android:id="@+id/btnDoStuff"
Android:text="Do Stuff" />
</TableRow>
Après avoir examiné les réponses ci-dessus, j'ai attrapé quelques choses de chaque réponse et cela a fonctionné pour moi.
J'ai ajouté deux textes factices pour aligner mon bouton au centre.
<TableRow>
<TextView
Android:text=""
Android:layout_weight=".25"
Android:layout_width="0dip"
/>
<Button
Android:id="@+id/buttonSignIn"
Android:text="Log In"
Android:layout_height="wrap_content"
Android:layout_weight=".50"
Android:layout_width="0dip"
/>
<TextView
Android:text=""
Android:layout_weight=".25"
Android:layout_width="0dip"
/>
</TableRow>
Supprimer cette ligne <TableRow Android:layout_gravity="center">
Et donner Android:fill_containt
Dans la ligne de table pour les deux hauteur & largeur
Réponse modifiée: Eh bien, je suis tellement désolé pour les derniers messages faute d'orthographe
Par XML, il semble impossible pour TableLayout
. Vous devez définir cette interface utilisateur dans le code sur Oncreate. Dans votre Java fichier, vous pouvez définir ceux en utilisant ci-dessous.
playGame.setWidth(ScreenWidth()/2-var);
noPlayGame.setWidth(ScreenWidth()/2-var);
ici var
peut être utilisé pour définir la distance entre ces deux boutons de 10 ou 30. De plus, votre XML sera modifié comme suit:
<TableLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/ButtonsTable"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal">
<TableRow
Android:layout_width="wrap_content"
Android:layout_height="fill_parent"
Android:gravity="center">
<Button
Android:text="yes"
Android:id="@+id/playGame"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="center"/>
<Button
Android:text="no"
Android:id="@+id/noPlayGame"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="center"/>
</TableRow>
</TableLayout>
La méthode ScreenWidth()
peut être utilisée pour obtenir la largeur de l'écran via ces méthodes
private int ScreenWidth() {
DisplayMetrics dm=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
String width=""+dm.widthPixels;
return Integer.parseInt(width);
}