2017-09-25 14 views
0

S'il vous plaît partager le correctif pour le TableLayout - peu confus comment définir les poids et les colonnes pour organiser la mise en page selon les besoins. J'espère que vous aurez les besoins de mise en forme basés sur layout_span. Mais va essayer d'expliquer en mots. Posant comment je visualiser la mise en pageAndroid TableLayout problème - Impossible de le définir correctement

  1. Première rangée - d'avoir un bouton enjambant la largeur
  2. Deuxième rangée - pour que le centre de cap aligné
  3. de troisième rangée - d'avoir deux TextViews prenant secteur 50%
  4. Quatrième rangée - pour aligner le centre de la ligne
  5. Cinquième rangée - pour avoir un ImageView prenant 16,6% de la largeur et TextView prenant le reste 83,3%.
  6. Sixième rangée - pour avoir un ImageView prenant 16,6% de la largeur et TextView prenant le reste 83,3%.

Voici le code:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    > 

    <TableRow 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:padding="10dp"> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/app_get_questions" 
      android:id="@+id/btnNext" 
      android:textColor="@color/windowBackground" 
      android:layout_span="4" 
      android:layout_column="1" 
      /> 
    </TableRow> 
    <TableRow 
     android:layout_height="fill_parent" 
     android:layout_width="match_parent" 
     > 
     <TextView 
      android:layout_height="wrap_content" 
      android:gravity="center_horizontal" 
      android:text="@string/app_scoring_leaders" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textStyle="bold" 
      android:layout_span="4" 
      android:layout_column="1" 
      android:padding="5dp"/> 
    </TableRow> 
    <TableRow 
     android:layout_height="fill_parent" 
     android:layout_width="match_parent" 
     android:padding="5dp"> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/txtDailyScores" 
      android:text="1. Kapil Bhagia (34511)\n2. Hardik Bhagia (2231)" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:layout_margin="5dp" 
      android:layout_column="1" 
      android:layout_span="2" 
      android:layout_weight="3"/> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/txtAllTimeScores" 
      android:text="1. Kapil Bhagia (34511)\n2. Hardik Bhagia (2231)" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:layout_margin="5dp" 
      android:layout_column="3" 
      android:layout_span="2" 
      android:layout_weight="3"/> 
    </TableRow> 
    <TableRow 
     android:layout_height="fill_parent" 
     android:layout_width="match_parent" 
     > 
     <TextView 
      android:layout_height="wrap_content" 
      android:gravity="center_horizontal" 
      android:text="@string/app_get_started" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textStyle="bold" 
      android:layout_column="1" 
      android:layout_span="4" 
      android:padding="5dp"/> 
    </TableRow> 
    <TableRow 
     android:layout_height="fill_parent" 
     android:layout_width="match_parent" 
     android:padding="5dp"> 
     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_assessment_black_36dp" 
      android:layout_gravity="center_vertical" 
      android:layout_column="1" 
      android:layout_span="1" 
      android:layout_weight="1" 
      /> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/app_intro" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:layout_margin="5dp" 
      android:layout_column="2" 
      android:layout_span="3" 
      android:layout_weight="5"/> 

    </TableRow> 
    <TableRow 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:padding="5dp"> 
     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:src="@drawable/ic_today_black_36dp" 
      android:layout_column="1" 
      android:layout_span="1" 
      android:layout_weight="1" 
      /> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:gravity="left" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="@string/app_base_score" 
      android:layout_margin="5dp" 
      android:layout_column="2" 
      android:layout_span="3" 
      android:layout_weight="5"/> 
    </TableRow> 
</TableLayout> 

Répondre

0

Cela a pris un peu de temps, mais il y a des changements liés à layout_weight que je devais faire, toute la structure de la table a dû être changé. J'ai utilisé LinearLayout à la place pour les deux dernières lignes. Les quatre premières lignes pourraient être faites en utilisant TableLayout. Layout_spans a dû être simplifié - il semble que nous ne pouvons pas avoir des dispositions complexes. Heureux de comprendre s'il y a de meilleures solutions.

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    > 

    <TableRow 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:padding="5dp" > 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/app_rankgrade" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textStyle="bold" 
      android:textColor="@android:color/black" 
      android:textAlignment="center" 
      android:layout_weight="2" 
      /> 

    </TableRow> 
    <TableRow 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:padding="2dp" android:layout_gravity="center"> 
     <RelativeLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/relativelayout" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" android:layout_gravity="center" android:gravity="center" android:layout_weight="1"> 

      <ImageView 
       android:id="@+id/myImageView" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/trframered1" 

       /> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignLeft="@id/myImageView" 
       android:layout_alignTop="@id/myImageView" 
       android:layout_alignRight="@id/myImageView" 
       android:layout_alignBottom="@id/myImageView" 
       android:layout_margin="1dp" 
       android:gravity="center" 
       android:orientation="vertical" 
       > 
       <TextView 
        android:id="@+id/myImageViewTextHead" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_margin="1dp" 
        android:gravity="center" 
        android:text="@string/app_last_rank_grade" 
        android:textColor="#000000" /> 
       <TextView 
        android:id="@+id/txtLastDayRankGrade" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_margin="1dp" 
        android:gravity="center" 
        android:text="-" 
        android:textColor="#000000" /> 

      </LinearLayout> 


     </RelativeLayout> 

     <RelativeLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/relativelayout1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" android:layout_gravity="center" android:gravity="center" android:layout_weight="1"> 

      <ImageView 
       android:id="@+id/myImageView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/trframered1" /> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignLeft="@id/myImageView1" 
       android:layout_alignTop="@id/myImageView1" 
       android:layout_alignRight="@id/myImageView1" 
       android:layout_alignBottom="@id/myImageView1" 
       android:layout_margin="1dp" 
       android:gravity="center" 
       android:orientation="vertical" 
       > 
       <TextView 
        android:id="@+id/myImageViewTextHead1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_margin="1dp" 
        android:gravity="center" 
        android:text="All Time" 
        android:textColor="#000000" /> 
       <TextView 
        android:id="@+id/txtLastAllTimeRankGrade" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_margin="1dp" 
        android:gravity="center" 
        android:text="-" 
        android:textColor="#000000" /> 

      </LinearLayout> 


     </RelativeLayout> 
    </TableRow> 
</TableLayout> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    > 

    <TableRow 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:padding="5dp"> 
     <Button 
      android:layout_height="wrap_content" 
      android:text="@string/app_get_questions" 
      android:id="@+id/btnNext" 
      android:textColor="@color/windowBackground" 
      android:layout_span="2" 
      android:layout_weight="2" 
      /> 
    </TableRow> 
    <TableRow 
     android:layout_height="fill_parent" 
     android:layout_width="match_parent" 
     > 
     <TextView 
      android:layout_height="wrap_content" 
      android:gravity="center_horizontal" 
      android:text="@string/app_scoring_leaders" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textStyle="bold" 
      android:layout_span="2" 
      android:layout_weight="2" 
      android:padding="5dp"/> 
    </TableRow> 
    <TableRow 
     android:layout_height="fill_parent" 
     android:layout_width="match_parent" 
     android:padding="5dp"> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/txtDailyScores" 
      android:text="1. Kapil Bhagia (34511)\n2. Hardik Bhagia (2231)" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:layout_margin="5dp" 
      android:layout_weight="1"/> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/txtAllTimeScores" 
      android:text="1. Kapil Bhagia (34511)\n2. Hardik Bhagia (2231)" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:layout_margin="5dp" 
      android:layout_weight="1"/> 
    </TableRow> 

    <TableRow 
     android:layout_height="fill_parent" 
     android:layout_width="match_parent" 
     > 
     <TextView 
      android:layout_height="wrap_content" 
      android:gravity="center_horizontal" 
      android:text="@string/app_get_started" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textStyle="bold" 
      android:layout_weight="2" 
      android:layout_span="2" 
      android:padding="5dp"/> 
    </TableRow> 
    </TableLayout> 

      <LinearLayout 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" > 
       <ImageView 
        android:layout_height="wrap_content" 
        android:src="@drawable/ic_assessment_black_36dp" 
        android:layout_gravity="center_vertical" 
        android:layout_width="wrap_content" 
        android:padding="10dp" 
        /> 
       <TextView 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:text="@string/app_intro" 
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:padding="10dp" 
        /> 
      </LinearLayout> 

      <LinearLayout 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" > 
       <ImageView 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_vertical" 
        android:src="@drawable/ic_today_black_36dp" 
        android:layout_width="wrap_content" 
        android:padding="10dp" 
        /> 
       <TextView 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:text="@string/app_base_score" 
        android:padding="10dp" 
        /> 
      </LinearLayout>