Как изменить цвет фона для столбца моего приложения для Android - PullRequest
1 голос
/ 10 июля 2011

В моем приложении для Android есть таблица с семью столбцами.Я хотел бы изменить цвет фона этих столбцов при обновлении содержимого в таблице.Как указать столбцы в main.xml и как изменить их цвет фона?Спасибо.

Редактировать main.xml опубликовано ...

<?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="fill_parent"
    android:background="#CDCDCD" android:orientation="vertical">
    <TableLayout android:id="@+id/tableLayout1" android:layout_width="match_parent" android:layout_height="wrap_content">
        <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content">
            <TextView android:text="100" android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="1"></TextView>
            <TextView android:text="100" android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="2"></TextView>
            <TextView android:text="100" android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="3"></TextView>
            <TextView android:text="100" android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="4"></TextView>
            <TextView android:text="100" android:id="@+id/textView6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="5"></TextView>
            <TextView android:text="100" android:id="@+id/textView7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="6"></TextView>
            <TextView android:text="100" android:id="@+id/textView8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="7"></TextView>
        </TableRow>
        <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content">
            <TextView android:text="100" android:id="@+id/textView11" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="1"></TextView>
            <TextView android:text="100" android:id="@+id/textView12" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="2"></TextView>
            <TextView android:text="100" android:id="@+id/textView13" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="3"></TextView>
            <TextView android:text="100" android:id="@+id/textView14" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="4"></TextView>
            <TextView android:text="100" android:id="@+id/textView15" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="5"></TextView>
            <TextView android:text="100" android:id="@+id/textView16" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="6"></TextView>
            <TextView android:text="100" android:id="@+id/textView17" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="7"></TextView>
        </TableRow>
    </TableLayout>
</LinearLayout>

РЕДАКТИРОВАТЬ:

Это пример того, почему я хочу выделить весь столбец вместо отдельныхTextViews.Когда я выделяю отдельные текстовые представления, они имеют разные размеры, поэтому они не расширяются до ширины самого широкого текстового представления в этом столбце.Если никто не знает, как изменить размер моих текстовых представлений, чтобы соответствовать размеру самого широкого текстового представления в каждом столбце.Если кто-то знает это, пожалуйста, напишите.

uneven highlighting

РЕДАКТИРОВАТЬ: Результаты добавления свойств layout_weight к тегу TableRow ...

enter image description here

Я тоже пробовал то же самоено вместо этого добавил свойство layout_weight в тег TextView.Вот результат ...

enter image description here

Ответы [ 3 ]

1 голос
/ 10 июля 2011

Чтобы дать вашим текстовым представлениям равную ширину и, следовательно, исправить проблему выделения, вы должны взглянуть на свойство layout_weight

 <?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="fill_parent"
     android:background="#CDCDCD" 
     android:orientation="vertical">
  <TableLayout android:id="@+id/tableLayout1" android:layout_width="match_parent"              android:layout_height="wrap_content">
     <TableRow 
        android:id="@+id/tableRow1"
        android:layout_width="0dip" 
        android:layout_height="wrap_content" 
        android:layout_weight="0.5">
        <TextView android:text="100" android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_column="1"></TextView>
    </TableRow>
    <TableRow   
       android:id="@+id/tableRow2" 
       android:layout_width="0dip" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.5">
        <TextView android:text="100" android:id="@+id/textView11" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_column="1"></TextView>            
    </TableRow>
  </TableLayout>
</LinearLayout>

Сейчас я не на своем компьютере для разработки, поэтому не могу проверить это (и исправить свое форматирование), но это должно работать, я проверю это позже.

0 голосов
/ 13 июня 2013

В итоге я использовал ряд вложенных линейных макетов, полноэкранный горизонтальный с равномерно расположенными вертикальными для столбцов. Если затем установить прозрачный фон TextView, я могу изменить весь фон столбца, задав фон LinearLayout столбца.

0 голосов
/ 10 июля 2011

Возможно, это не самое красивое решение, но вы можете изменить цвет фона всех TextViews в столбце.

TextView textview2 = (TextView) findViewById(R.id.textView2);
TextView textview11 = (TextView) findViewById(R.id.textView11);
textview2.setBackgroundColor(Color.RED);
textview11.setBackgroundColor(Color.RED);
...