如何更改 Android 应用程序某一列的背景颜色

发布于 2024-11-19 11:08:16 字数 4030 浏览 2 评论 0原文

我的 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>

编辑:

这是为什么我想突出显示整个列而不是单个文本视图的示例。当我突出显示各个文本视图时,它们的大小不同,因此它们不会扩展到该列中最宽文本视图的宽度。除非有人知道如何更改文本视图的大小以适应每列中最宽的文本视图的大小。如果有人知道这个,请发帖。

不均匀突出显示

编辑: 将layout_weight属性添加到TableRow标记的结果...

在此处输入图像描述

我也尝试了同样的操作,但添加了layout_weight属性改为 TextView 标记。这是结果...

在此处输入图像描述

My Android app has a table with seven columns. I'd like to change the background color of these columns when the content in the table is updated. How do I specify columns in the main.xml and how do I change their background color? Thanks.

Edit main.xml posted...

<?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>

EDIT:

This is an example of why I want to highlight the entire column instead of the individual textviews. When I highlight the individual textviews they are different sizes so they do not expand to the width of the widest textview in that column. Unless anyone knows how to change the size of my text views to fit the size of the widest textview in each column. If anyone does know this, please post.

uneven highlighting

EDIT:
Results of adding layout_weight properties to the TableRow tag...

enter image description here

I also tried the same thing but added the layout_weight property to the TextView tag instead. Here is the result...

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

绝不放开 2024-11-26 11:08:16

为了让你的文本视图等宽,从而解决你的突出显示问题,你应该查看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>

现在我不在我的开发电脑上,所以无法验证这一点(并修复我的格式),但它应该可以工作,我会检查它之后。

To give your textviews equal width and therefore fix your higlighting issue you should look at the layout_weight property

 <?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>

Now I'm not at my development PC so can't verify this (and fix my formatting), but it should work I'll check it later.

牵你手 2024-11-26 11:08:16

也许不是最漂亮的解决方案,但您可以更改列中所有 TextView 的背景颜色。

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

Maybe not the prettiest solution but you could change the background color of all the TextViews in the column.

TextView textview2 = (TextView) findViewById(R.id.textView2);
TextView textview11 = (TextView) findViewById(R.id.textView11);
textview2.setBackgroundColor(Color.RED);
textview11.setBackgroundColor(Color.RED);
云仙小弟 2024-11-26 11:08:16

我最终使用了一系列嵌套的线性布局,一个全屏水平布局,其中列的垂直布局均匀分布。如果我随后将 TextView 背景设置为透明,则可以通过设置列的 LinearLayout 的背景来更改整个列的背景。

I ended up using a series of nested linear layouts, a full-screen horizonal one with evenly spaced vertical ones for the columns. If I then set the TextView background to transparent, I can change the entire column background by setting the background of the column's LinearLayout.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文