【问题标题】:Android table layout with textviews带有文本视图的 Android 表格布局
【发布时间】:2013-04-24 04:29:39
【问题描述】:

我有我的布局文件:

<?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="@drawable/background"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/linearlayout01"
        android:layout_width="300dp"
        android:layout_height="45dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="52dp"
        android:orientation="vertical" >
    </LinearLayout>
<Button
    android:id="@+id/Btn"
    android:background="@drawable/close"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="-2dp"
    android:layout_marginTop="10dp">
 </Button>
    <TableLayout
        android:id="@+id/tableLayout1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:shrinkColumns="1"
        android:stretchColumns="0"
        android:layout_marginTop="15dp" >

        <TableRow android:weightSum="2" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ellipsize="end"
                android:text="@string/HostName"
                android:textColor="#000000"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal|center_vertical"
                android:layout_weight="0"
                android:textColor="#000000"
                android:textStyle="bold" />
        </TableRow>
         <TableRow android:weightSum="2"
                    android:layout_marginTop="30dp"
            >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ellipsize="end"
                android:text="@string/programname"
                android:textColor="#000000"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/programname"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_weight="0"
                android:textColor="#000000"
                android:textStyle="bold" />
        </TableRow>

        <TableRow android:weightSum="2"
                    android:layout_marginTop="30dp"
            >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ellipsize="end"
                android:text="@string/Date"
                android:textColor="#000000"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/date"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_weight="0"
                android:textColor="#000000"
                android:textStyle="bold" />
        </TableRow>

        <TableRow android:layout_marginTop="20dp"
            android:layout_marginLeft="1dp"
            android:layout_marginRight="1dp"

             >


            <SeekBar
                android:id="@+id/seekBar1"
                android:layout_width="500dp"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/mainlayout"
                android:layout_marginLeft="-260dp"
               android:layout_marginRight="0dp"

                android:layout_marginTop="8dp" />
        </TableRow>

    </TableLayout>

</LinearLayout>

我得到以下输出:

更新:

但我需要的输出应该是:

|   HostName:     text123    |

|   PName:        text3      |

|   Date:         text6      |

有人可以帮忙吗?

【问题讨论】:

  • 截图太小了。你能详细描述一下这个问题吗?
  • 左右侧textviews与屏幕边缘相邻,有时我无法显示textview

标签: android android-layout android-intent android-widget


【解决方案1】:

字符串,试试这个。我也附上了输出。我没有得到任何不规则的文本对齐,如下图所示。

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

    <LinearLayout
        android:id="@+id/linearlayout01"
        android:layout_width="300dp"
        android:layout_height="45dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="52dp"
        android:orientation="vertical" >
    </LinearLayout>
<Button
    android:id="@+id/Btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="-2dp"
    android:layout_marginTop="10dp"
    android:text="close">
 </Button>
    <TableLayout
        android:id="@+id/tableLayout1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:shrinkColumns="*"  
        android:stretchColumns="*"
        android:layout_marginTop="15dp" >

       <TableRow  
        android:id="@+id/tableRow1"  
        android:layout_height="wrap_content"  
        android:layout_width="match_parent"
        android:weightSum="2">  
        <TextView  
            android:id="@+id/TextView04"  
            android:text="Date"
            android:layout_width="0dp"
            android:layout_weight="1"></TextView>  
        <TextView  
            android:id="@+id/TextView04"  
            android:text="text123"  
            android:textStyle="bold"
            android:layout_width="0dp"
            android:layout_weight="1"></TextView>

    </TableRow> 
        <TableRow  
        android:id="@+id/tableRow2"  
        android:layout_height="wrap_content"  
        android:layout_width="match_parent"
        android:weightSum="2">  
        <TextView  
            android:id="@+id/TextView04"  
            android:text="Date"
            android:layout_width="0dp"
            android:layout_weight="1"></TextView>  
        <TextView  
            android:id="@+id/TextView04"  
            android:text="text123"  
            android:textStyle="bold"
            android:layout_width="0dp"
            android:layout_weight="1"></TextView>

    </TableRow> 

     <TableRow  
        android:id="@+id/tableRow3"  
        android:layout_height="wrap_content"  
        android:layout_width="match_parent" 
        android:weightSum="2">  
        <TextView  
            android:id="@+id/TextView04"  
            android:text="Date"
            android:layout_width="0dp"
            android:layout_weight="1"></TextView>  
        <TextView  
            android:id="@+id/TextView04"  
            android:text="text123"  
            android:textStyle="bold"
            android:layout_width="0dp"
            android:layout_weight="1"></TextView>
        </TableRow>


         <TableRow  
        android:id="@+id/tableRow4"  
        android:layout_height="wrap_content"  
        android:layout_width="match_parent"
        android:weightSum="2">  
        <TextView  
            android:id="@+id/TextView04"  
            android:text="Date"
            android:layout_width="0dp"
            android:layout_weight="1"></TextView>  
        <TextView  
            android:id="@+id/TextView04"  
            android:text="text123"  
            android:textStyle="bold"
            android:layout_width="0dp"
            android:layout_weight="1"></TextView>  

    </TableRow> 



      <TableRow  
        android:id="@+id/tableRow5"  
        android:layout_height="wrap_content"  
        android:layout_width="match_parent">


            <SeekBar
                android:id="@+id/seekBar1"
                android:layout_width="500dp"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/mainlayout"
                android:layout_marginLeft="-260dp"
               android:layout_marginRight="0dp"

                android:layout_marginTop="8dp" />
        </TableRow>

    </TableLayout>

</LinearLayout>

输出:

如果您有任何问题,请回帖。

【讨论】:

    【解决方案2】:

    最好试试这个..

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    
        <LinearLayout
            android:id="@+id/rows"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
    
            <TableLayout
                android:id="@+id/key"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="30dp" >
    
                <TableRow
                    android:id="@+id/row1"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content" >
    
                    <TextView
                        android:id="@+id/text1"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:text="HName" />
    
                    <TextView
                        android:id="@+id/txt2"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:text="HostName" />
                </TableRow>
    
                <TableRow
                    android:id="@+id/row2"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="30dp" >
    
                    <TextView
                        android:id="@+id/txt3"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:text="PName" />
    
                    <TextView
                        android:id="@+id/txt4"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:text="ProgramName" />
                </TableRow>
    
                <TableRow
                    android:id="@+id/row3"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="30dp" >
    
                    <TextView
                        android:id="@+id/txt5"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:text="Date" />
    
                    <TextView
                        android:id="@+id/txt6"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:text="Todays Date" />
                </TableRow>
    
    
            </TableLayout>
        </LinearLayout>
    
    </RelativeLayout>
    

    【讨论】:

    • 工作,但我无法在同一行显示我的 2 个文本视图
    • 文本视图显示在同一行
    • 抱歉,我无法理解您的想法?最好详细解释一下
    【解决方案3】:
     <TableRow
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
               android:layout_marginTop="30dp"
               android:weightSum="2" >
    
            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ellipsize="end"
                android:text="Date"
                android:textColor="#ffffff"
                android:textStyle="bold" />
    
            <TextView
                android:id="@+id/date"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_weight="1"
                android:text="text123"
                android:textColor="#ffffff"
                android:textStyle="bold" />
        </TableRow>
    

    您必须在 TableRow 中为 TextView 平等地提供 android:layout_weight。我想它会解决你的问题

    编辑:

    我只是对你的 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:orientation="vertical" >
    
        <LinearLayout
            android:id="@+id/linearlayout01"
            android:layout_width="300dp"
            android:layout_height="45dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="52dp"
            android:orientation="vertical" >
        </LinearLayout>
    <Button
        android:id="@+id/Btn"
        android:background="@drawable/close"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="-2dp"
        android:layout_marginTop="10dp">
     </Button>
        <TableLayout
            android:id="@+id/tableLayout1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:shrinkColumns="1"
            android:stretchColumns="0"
            android:layout_marginTop="15dp" >
    
            <TableRow android:weightSum="2" >
    
                <TextView
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:ellipsize="end"
                    android:text="HostName"
                    android:textColor="#ffffff"
                    android:textStyle="bold" />
    
                <TextView
                    android:id="@+id/name"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:layout_weight="1"
                    android:text="HostName"
                    android:textColor="#ffffff"
                    android:textStyle="bold" />
            </TableRow>
             <TableRow android:weightSum="2"
                        android:layout_marginTop="30dp"
                >
    
                <TextView
                   android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:ellipsize="end"
                    android:text=" programname"
                    android:textColor="#ffffff"
                    android:textStyle="bold" />
    
                <TextView
                    android:id="@+id/date"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                     android:text=" programname"
                    android:layout_weight="1"
                    android:textColor="#ffffff"
                    android:textStyle="bold" />
            </TableRow>
    
            <TableRow android:weightSum="2"
                        android:layout_marginTop="30dp"
                >
    
                <TextView
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:ellipsize="end"
                    android:text=" Date"
                    android:textColor="#ffffff"
                    android:textStyle="bold" />
    
                <TextView
                    android:id="@+id/date"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                     android:text=" date"
                    android:layout_weight="1"
                    android:textColor="#ffffff"
                    android:textStyle="bold" />
            </TableRow>
    
            <TableRow android:layout_marginTop="20dp"
                android:layout_marginLeft="1dp"
                android:layout_marginRight="1dp"
    
                 >
    
    
                <SeekBar
                    android:id="@+id/seekBar1"
                    android:layout_width="500dp"
                    android:layout_height="wrap_content"
                    android:layout_alignLeft="@+id/mainlayout"
                    android:layout_marginLeft="-260dp"
                   android:layout_marginRight="0dp"
    
                    android:layout_marginTop="8dp" />
            </TableRow>
    
        </TableLayout>
    
    </LinearLayout>
    

    修改后的截图

    这是你想要的吗??

    【讨论】:

    • 工作,但我无法在同一行显示我的 2 个文本视图
    • @String 试试这个 android:layout_height="wrap_content" 表行
    • @String 尝试为您的表格行提供 layout_height 和 layout_width
    • 给出,但没有效果@edwin
    猜你喜欢
    • 2013-11-27
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    相关资源
    最近更新 更多