Как изменить цвет фона для столбца моего приложения для Android

1

В моем 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>

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

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

Изображение 174551

EDIT: результаты добавления свойств layout_weight в тег TableRow...

Изображение 174551

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

Изображение 174551

  • 0
    Покажите нам свой макет XML
  • 0
    Только что отправил.
Показать ещё 1 комментарий
Теги:
android-tablelayout

3 ответа

1
Лучший ответ

Чтобы дать вашему текстуру равную ширину и, следовательно, устранить проблему с высокой степенью освещенности, вы должны посмотреть на свойство 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
    Спасибо за ответ. Я знал о свойстве layout_width. Однако я так и не смог заставить его работать должным образом. Я попробовал ваше решение, опубликованное выше, но оно не сработало. Я также попытался добавить свойство layout_weight в TextView вместо TableRow, но это также не сработало. Я все еще получаю то же неравномерное выделение. Я опубликую изображение в моем оригинальном сообщении.
  • 0
    @ bitnuk3r похоже, что layout_weight работает, вам просто нужно добавить layout_gravity = "center" в макет выше. Извините, у меня нет моего компьютера разработчика, чтобы перепроверить
Показать ещё 1 комментарий
0

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

0

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

TextView textview2 = (TextView) findViewById(R.id.textView2);
TextView textview11 = (TextView) findViewById(R.id.textView11);
textview2.setBackgroundColor(Color.RED);
textview11.setBackgroundColor(Color.RED);
  • 0
    У меня было хоть какое-то решение, но оно усложняется, когда я добавляю больше столбцов и текстовых представлений в таблицу. Также я не могу заставить мои текстовые представления расширяться до ширины самого широкого текстового обзора в каждом столбце. Это делало подсветку неравномерной (см. Фото, которое я разместил выше). Я должен быть в состоянии иметь даже подсветку на каждом столбце. Я думаю, что лучший способ сделать это - выделить колонку, а не каждое отдельное текстовое представление.
  • 0
    Попробуйте решение, которое Бланделл предоставил в своем ответе. Или вы также можете попробовать изменить на android: layout_width = "fill_parent" в TextViews, может работать, но я не могу проверить это прямо сейчас. И да, было бы лучше иметь возможность обрабатывать весь столбец как единое целое. Посмотрел вкратце документацию но ничего не нашел ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню