表格布局:为每一行设置样式

3

我希望在TableLayout中设置5行,使其具有气泡轮廓。 我想让每一行都有独立的弧形边缘和不同的底色。 是否可以使用TableLayout实现这个效果? 目前,我只有一个基本的表格结构,其中包含3行,每行仅包含普通的TextView。 感谢您的时间。

2个回答

5

这样可以吗?

row_blue_bg.xml

(译者注:此处是文件名,不做翻译)
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle" >
         <solid   android:color="#2ca4ea"/>
         <corners android:bottomRightRadius="5dp" 
                 android:bottomLeftRadius="5dp" 
                 android:topLeftRadius="5dp" 
                 android:topRightRadius="5dp" />                         

    </shape>
</item>
</layer-list>

row_red_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle" >
         <solid   android:color="#e3977d"/>
         <corners android:bottomRightRadius="5dp" 
                 android:bottomLeftRadius="5dp" 
                 android:topLeftRadius="5dp" 
                 android:topRightRadius="5dp" />                         

    </shape>
</item>
</layer-list>

table_layout.xml

<LinearLayout 
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">

<TableLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:stretchColumns="*" 
    android:background="#373737"
    >
    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/row_red_bg"
        >

          <!-- First  -->
            <LinearLayout
            android:id="@+id/first_text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_weight="1" >

                  <TextView
                    android:id="@+id/tvMyBooking"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:textColor="#ffffff"
                    android:gravity="center"
                    android:text="r11"
                    android:padding="5dp"
                     />

           </LinearLayout>

        <!-- Second  -->
            <LinearLayout
            android:id="@+id/second_text"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"

            android:layout_weight="1"  >

                <TextView
                    android:id="@+id/tvPrivate"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="r12" 
                    android:textColor="#ffffff"
                    android:padding="5dp"
                    />


           </LinearLayout>

          <!-- third  -->
            <LinearLayout
            android:id="@+id/third_text"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"

            android:layout_weight="1" >

                <TextView
                    android:id="@+id/tvPublic"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="r13" 
                    android:textColor="#ffffff"
                    android:padding="5dp"
                    />



           </LinearLayout>


          <!-- fourth  -->
            <LinearLayout
            android:id="@+id/fourth_text"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" 
            android:layout_weight="1" >

                <TextView
                    android:id="@+id/tvAddBooking"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="r14" 
                    android:textColor="#ffffff"
                    android:padding="5dp"
                    />



           </LinearLayout>

    </TableRow>

     <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/row_blue_bg"
        >

          <!-- First  -->
            <LinearLayout
            android:id="@+id/first_text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_weight="1" >

                  <TextView
                    android:id="@+id/tvMyBooking"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:textColor="#ffffff"
                    android:gravity="center"
                    android:text="r21"
                    android:padding="5dp"
                     />




           </LinearLayout>

        <!-- Second  -->
            <LinearLayout
            android:id="@+id/second_text"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"

            android:layout_weight="1"  >

                <TextView
                    android:id="@+id/tvPrivate"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="r22" 
                    android:textColor="#ffffff"
                    android:padding="5dp"
                    />


           </LinearLayout>

          <!-- third  -->
            <LinearLayout
            android:id="@+id/third_text"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"

            android:layout_weight="1" >

                <TextView
                    android:id="@+id/tvPublic"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="r23" 
                    android:textColor="#ffffff"
                    android:padding="5dp"
                    />



           </LinearLayout>


          <!-- fourth  -->
            <LinearLayout
            android:id="@+id/fourth_text"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" 
            android:layout_weight="1" >

                <TextView
                    android:id="@+id/tvAddBooking"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="r24" 
                    android:textColor="#ffffff"
                    android:padding="5dp"
                    />



           </LinearLayout>

    </TableRow>
     <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/row_red_bg"
        >

          <!-- First -->
            <LinearLayout
            android:id="@+id/first_text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_weight="1" >

                  <TextView
                    android:id="@+id/tvMyBooking"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:textColor="#ffffff"
                    android:gravity="center"
                    android:text="r31"
                    android:padding="5dp"
                     />

           </LinearLayout>

        <!-- Second  -->
            <LinearLayout
            android:id="@+id/second_text"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"

            android:layout_weight="1"  >

                <TextView
                    android:id="@+id/tvPrivate"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="r32" 
                    android:textColor="#ffffff"
                    android:padding="5dp"
                    />


           </LinearLayout>

          <!-- third  -->
            <LinearLayout
            android:id="@+id/third_text"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"

            android:layout_weight="1" >

                <TextView
                    android:id="@+id/tvPublic"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="r33" 
                    android:textColor="#ffffff"
                    android:padding="5dp"
                    />



           </LinearLayout>


          <!-- fourth  -->
            <LinearLayout
            android:id="@+id/fourth_text"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" 
            android:layout_weight="1" >

                <TextView
                    android:id="@+id/tvAddBooking"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="r34" 
                    android:textColor="#ffffff"
                    android:padding="5dp"
                    />

           </LinearLayout>

    </TableRow>

</TableLayout>

</LinearLayout>

这些layer-lists应该放在布局文件夹中还是任意选择的文件夹中? - kabuto178
@kabuto178 将图层列表放入drawable文件夹中,不能放入layout文件夹中。 - TheFlash
@kabuto178 没关系啊,兄弟,这种情况我也经历过。如果我的回答对你有帮助,请接受它.. :) - TheFlash

2

是的,可以为表格布局的不同行创建单独的布局。

可以尝试以下方法:

<TableLayout
        android:orientation="vertical" 
        android:layout_gravity="center_horizontal"
        android:gravity="center_horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TableRow
            android:layout_width="match_parent"
            android:layout_marginTop="30dp"
            android:layout_height="wrap_content"
            android:gravity="center">
            <RelativeLayout             
                android:id="@+id/dashboard1BtnMyOwn"
                android:clickable="true"
                android:background="@drawable/click_effect_dashboard"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                >
                <ImageView
                    android:id="@+id/dashboard1ImgMyOwn"
                    android:layout_width="45dp"
                    android:contentDescription="@string/myOwned"
                    android:layout_height="45dp"
                    android:gravity="center"
                    android:layout_centerHorizontal="true"
                    android:src="@drawable/personal"
                    />
                <TextView
                    android:id="@+id/dashboard1TxtMyOwn"
                android:layout_width="95dp"
                    android:layout_height="wrap_content"
                    android:lines="2"
                    android:textSize="20sp"
                    android:gravity="center"
                    android:layout_below="@id/dashboard1ImgMyOwn"
                    android:text="@string/myOwned"
                    />
            </RelativeLayout>
            <TableRow/>
            ....

可以为TableRow中的RelativeLayout使用自定义Drawable来绘制边框,例如:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 
     <gradient android:startColor="@android:color/holo_blue_light" android:endColor="@android:color/holo_blue_light" 
            android:angle="270"/> 

    <corners android:bottomRightRadius="7dp" android:bottomLeftRadius="7dp" 
     android:topLeftRadius="7dp" android:topRightRadius="7dp"/> 
</shape> 

这应该是结果(设置自己的图像):在此输入图片描述

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接