2015-02-18 2 views
0

в XML Я отказался от TableLayout с TableRow (заголовок таблицы). Каждая другая строка будет добавлена ​​программно. Проблема: Я не могу получить новые строки в линию с одним из XMLФорматирование нового TableRow (программно)

  1. 3 TextView массива, 1 TableRow Массив
  2. Loop, чтобы заполнить эти массивы с TextViews и TableRows
  3. Все они уделено методу setTableRowParams
  4. Установка текста для TextViews
  5. Внесение всех строк в TableLayout

    driversNames = new TextView[DRIVERSAMOUNT]; 
    driversDriven = new TextView[DRIVERSAMOUNT]; 
    driversRemaining = new TextView[DRIVERSAMOUNT]; 
    driversRows = new TableRow[DRIVERSAMOUNT]; 
    
    for (int i = 0; i < DRIVERSAMOUNT; i++) { 
    
        driversNames[i] = new TextView(this); 
        driversDriven[i] = new TextView(this); 
        driversRemaining[i] = new TextView(this); 
    
        driversRows[i] = new TableRow(this); 
        setTableRowParams(driversRows[i]); 
    
        driversNames[i].setText(driversArray[i].getName()); 
        driversDriven[i].setText("" + driversArray[i].getTimeDriven()); 
        driversRemaining[i].setText("" + driversArray[i].getTimeRemaining()); 
    
    
    
        driversRows[i].addView(driversNames[i]); 
        driversRows[i].addView(driversDriven[i]); 
        driversRows[i].addView(driversRemaining[i]); 
    
        tableLayout.addView(driversRows[i]); 
    
    } 
    

    setTableRowParams() Метод

    TableLayout.LayoutParams tableRowParams = 
         new TableLayout.LayoutParams 
           (TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT); 
    tableRowParams.setMargins(10, 10, 10, 10); 
    
    tr.setLayoutParams(tableRowParams); 
    
    <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" 
         android:id="@+id/card_driver" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center" 
         android:layout_marginBottom="10dp" 
         android:layout_marginLeft="20dp" 
         android:layout_marginRight="20dp" 
         android:layout_marginTop="20dp" 
         android:elevation="10dp" 
         card_view:cardCornerRadius="2dp"> 
    
         <TableLayout 
          android:id="@+id/tableDrivers" 
          android:layout_width="match_parent" 
          android:layout_height="wrap_content"> 
    
          <TableRow 
           android:id="@+id/driversRow1" 
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content" 
           android:layout_margin="10dp"> 
    
           <TextView 
            android:id="@+id/tVDriversTitle" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:layout_span="3" 
            android:layout_weight="1" 
            android:text="@string/card_drivers" 
            android:textAppearance="?android:attr/textAppearanceLarge" /> 
    
          </TableRow> 
    
          <TableRow 
           android:id="@+id/driversRow2" 
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content" 
           android:layout_margin="10dp"> 
    
           <TextView 
            android:id="@+id/tVDriversName" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:layout_weight="1" 
            android:text="@string/drivers" 
            android:textAppearance="?android:attr/textAppearanceMedium" /> 
    
           <TextView 
            android:id="@+id/tVDriversDriven" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:layout_weight="1" 
            android:text="@string/timeDriven" 
            android:textAppearance="?android:attr/textAppearanceMedium" /> 
    
           <TextView 
            android:id="@+id/tVDriversRemaining" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:layout_weight="1" 
            android:text="@string/timeLeft" 
            android:textAppearance="?android:attr/textAppearanceMedium" /> 
    
          </TableRow> 
    
          <!-- THE VALUES ARE ADDED PROGRAMATICALLY --> 
    
         </TableLayout> 
    
        </android.support.v7.widget.CardView> 
    

Это результат. Поскольку вы можете видеть строки, драйвер 1-4 не подходит к заголовку. Извините за иностранный язык ;-) enter image description here

Не могли бы вы рассказать мне, где моя ошибка?

ответ

0

Вы пытались установить атрибут android: layout_width в 0dp (и, конечно, сохранить андроид: layout_weight как 1) в дочерних представлениях?

Убедитесь, что все дети начали не с той же ширины (Android: layout_width = «0dp» на них обоих)

+0

Спасибо Фахима, но я не уверен, успокаивать, что вы имеете в виду. Какую ширину элементов следует установить в 0dp? Я обновил свой вопрос с помощью XML-части. – Eyntschl

Смежные вопросы