J'ai un TableLayout
avec des lignes contenant Button
. Je veux que tous les boutons aient la même largeur mais ils agissent comme si leur largeur était match_parent
quand ils sont rendus même si je leur ai donné une largeur spécifique. Ils ne sont pas gérés n'importe où dans Java, donc le problème devrait se situer dans le XML seulement.Le bouton n'a pas la bonne largeur android
Voici mon XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.mridulahuja.kudamm.activities.ComponentDetailsActivity">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/light_green_background"
android:scaleType="fitXY"
android:alpha="0.5"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" />
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="8dp"
android:background="@null"
android:scrollbars="vertical"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:animateLayoutChanges="true">
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.mridulahuja.kudamm.tools.ExpandableTextView
android:id="@+id/txtComponentInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="component info"
android:textColor="#000000"
android:textSize="20sp" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:layout_height="10dp"
android:layout_width="match_parent"
/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">
<Button
android:id="@+id/btnDataAtAGlance"
android:layout_height="wrap_content"
android:layout_width="250dp"
android:gravity="center"
android:textSize="18sp"
android:textColor="#ffffff"
android:background="@drawable/green_button_style"
android:text="Data at a glance"
/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:layout_height="10dp"
android:layout_width="match_parent"
/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">
<Button
android:id="@+id/btnDimensionsAtAGlance"
android:layout_height="wrap_content"
android:layout_width="250dp"
android:gravity="center"
android:layout_gravity="center"
android:padding="10sp"
android:textSize="18sp"
android:textColor="#ffffff"
android:background="@drawable/green_button_style"
android:text="Dimensions at a glance"
/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:layout_height="10dp"
android:layout_width="match_parent"
/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">
<Button
android:id="@+id/btnDownloadPdfCatalogue"
android:layout_height="wrap_content"
android:layout_width="250dp"
android:gravity="center"
android:layout_gravity="center"
android:padding="10sp"
android:textSize="18sp"
android:textColor="#ffffff"
android:background="@drawable/green_button_style"
android:text="PDF Catalogue"
/>
</TableRow>
</TableLayout>
</ScrollView>
</RelativeLayout>
Ceci est le point de vue rendu sur Android Studio:
Et ceci est le point de vue rendu sur mobile: (voir le premier bouton => ce est en train de se passer tous les boutons lorsque je rends leur XML similaire)
Pourquoi cela se produit-il?
le changement de valeur 'dp' de l'appareil à l'autre, vous devez faire plusieurs fichiers dimens.xml pour chaque densité . – Ibrahim
Est-il nécessaire d'utiliser la structure de la table? Vous devrez peut-être utiliser un autre élément d'affichage, tel que Constraints/RelativeLayout. Ceux-ci sont plus faciles à manipuler vos widgets. –
@Ibrahim cela se produit même je lui donne une largeur de «50dp» qui est très moins – mrid