在运行时期间,Android的表格排列问题以4乘4的形式出现

时间:2013-03-19 12:28:16

标签: android android-layout

对于有:

的应用
  • 目标:API 8或Android Froyo。

  • 模拟器:Android GingerBread 2.0.3。

应用程序从/sdcard中读取文件中的数据,该文件应该显示在 Gridview布局中。但是,在 runtime 中,横向和纵向布局方向的排列是扭曲

  

布局看起来很完美,而设计时间与图像#1相同,但在运行时它就像在图像#2中看到的那样。

这是我的landscape orientation布局的XML:

<LinearLayout
    android:id="@+id/LinearLayoutInside"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/button2"
    android:orientation="vertical"
    android:background="@drawable/border_bkgrnd" >
    <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:weightSum="3" >
            <TextView
                android:id="@+id/textView13"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/TextView12"
                android:layout_below="@+id/TextView12"
                android:onClick="newActivity"
                android:text="Medium Text"
                android:layout_weight="1"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp"
                tools:ignore="HardcodedText" />

            <TextView
                android:id="@+id/TextView12"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/textView11"
                android:layout_alignRight="@+id/textView11"
                android:layout_alignTop="@+id/TextView22"
                android:onClick="newActivity"
                android:text="Medium Text"
                android:layout_weight="1"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp" />

            <TextView
                android:id="@+id/textView11"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/txtTitlev1"
                android:layout_below="@+id/txtTitlev1"
                android:onClick="newActivity"
                android:text="Medium Text"
                android:layout_weight="1"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp" />
    </LinearLayout>

    <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:weightSum="3" >
            <TextView
                android:id="@+id/TextView31"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/txtTitlev3"
                android:layout_alignParentRight="true"
                android:layout_below="@+id/txtTitlev3"
                android:text="@string/strNA"
                android:layout_weight="1"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp" />

            <TextView
                android:id="@+id/TextView33"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBaseline="@+id/TextView23"
                android:layout_alignBottom="@+id/TextView23"
                android:layout_alignLeft="@+id/TextView32"
                android:layout_alignParentRight="true"
                android:text="@string/strNA"
                android:layout_weight="1"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp"
                tools:ignore="HardcodedText" />

            <TextView
                android:id="@+id/txtTitlev1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_above="@+id/TextView21"
                android:layout_alignParentLeft="true"
                android:fontFamily="Roboto-BoldCondensed.ttf"
                android:text="@string/ttlLeadid"
                android:textColor="@color/Turquoise4"
                android:layout_weight="1"
                android:textSize="20sp"
                android:textStyle="bold|normal"
                android:typeface="normal" />
    </LinearLayout>

    <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:weightSum="3" >
            <TextView
                android:id="@+id/TextView32"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/TextView31"
                android:layout_alignParentRight="true"
                android:layout_below="@+id/TextView31"
                android:text="@string/strNA"
                android:layout_weight="1"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp"
                tools:ignore="HardcodedText" />

            <TextView
                android:id="@+id/TextView22"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/TextView21"
                android:layout_below="@+id/TextView21"
                android:text="Medium Text"
                android:layout_weight="1"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp"
                tools:ignore="HardcodedText" />

            <TextView
                android:id="@+id/TextView23"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/TextView22"
                android:layout_below="@+id/TextView22"
                android:onClick="newActivity"
                android:text="Medium Text"
                android:layout_weight="1"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp"
                tools:ignore="HardcodedText" />
    </LinearLayout>

    <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:weightSum="3" >
            <TextView
                android:id="@+id/txtTitlev3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_alignParentTop="true"
                android:fontFamily="Roboto-BoldCondensed.ttf"
                android:text="@string/ttlContact"
                android:textColor="@color/Turquoise4"
                android:textSize="20sp"
                android:layout_weight="1"
                android:textStyle="bold|normal" />

            <TextView
                android:id="@+id/txtTitlev2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:fontFamily="Roboto-BoldCondensed.ttf"
                android:text="@string/ttlName"
                android:textColor="@color/Turquoise4"
                android:textSize="20sp"
                android:layout_weight="1"
                android:textStyle="bold|normal" />

            <TextView
                android:id="@+id/TextView21"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_above="@+id/TextView32"
                android:layout_centerHorizontal="true"
                android:text="Medium Text"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp"
                android:layout_weight="1"
                tools:ignore="HardcodedText" />
    </LinearLayout>

</LinearLayout>

[编辑]

  

还有其他替代安排吗?

提前致谢...

3 个答案:

答案 0 :(得分:0)

尝试使用RelativeLayout执行此操作。我在LinearLayouts中添加了4 RelativeLayout,其中weightSum为3,并相应地移动了TextViews。我还将他们的layout_weight参数设置为1,以便它们在屏幕上拉伸。

我没有对此进行测试,但它应该有效。

编辑:我将RelativeLayout更改为LinearLayout,看到所有视图都在彼此之下

<LinearLayout
    android:id="@+id/LinearLayoutInside"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/button2"
    android:orientation="vertical"
    android:background="@drawable/border_bkgrnd" >
    <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:weightSum="3" >
            <TextView
                android:id="@+id/textView13"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/TextView12"
                android:layout_below="@+id/TextView12"
                android:onClick="newActivity"
                android:text="Medium Text"
                android:layout_weight="1"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp"
                tools:ignore="HardcodedText" />

            <TextView
                android:id="@+id/TextView12"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/textView11"
                android:layout_alignRight="@+id/textView11"
                android:layout_alignTop="@+id/TextView22"
                android:onClick="newActivity"
                android:text="Medium Text"
                android:layout_weight="1"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp" />

            <TextView
                android:id="@+id/textView11"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/txtTitlev1"
                android:layout_below="@+id/txtTitlev1"
                android:onClick="newActivity"
                android:text="Medium Text"
                android:layout_weight="1"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp" />
    </LinearLayout>

    <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:weightSum="3" >
            <TextView
                android:id="@+id/TextView31"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/txtTitlev3"
                android:layout_alignParentRight="true"
                android:layout_below="@+id/txtTitlev3"
                android:text="@string/strNA"
                android:layout_weight="1"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp" />

            <TextView
                android:id="@+id/TextView33"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBaseline="@+id/TextView23"
                android:layout_alignBottom="@+id/TextView23"
                android:layout_alignLeft="@+id/TextView32"
                android:layout_alignParentRight="true"
                android:text="@string/strNA"
                android:layout_weight="1"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp"
                tools:ignore="HardcodedText" />

            <TextView
                android:id="@+id/txtTitlev1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_above="@+id/TextView21"
                android:layout_alignParentLeft="true"
                android:fontFamily="Roboto-BoldCondensed.ttf"
                android:text="@string/ttlLeadid"
                android:textColor="@color/Turquoise4"
                android:layout_weight="1"
                android:textSize="20sp"
                android:textStyle="bold|normal"
                android:typeface="normal" />
    </LinearLayout>

    <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:weightSum="3" >
            <TextView
                android:id="@+id/TextView32"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/TextView31"
                android:layout_alignParentRight="true"
                android:layout_below="@+id/TextView31"
                android:text="@string/strNA"
                android:layout_weight="1"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp"
                tools:ignore="HardcodedText" />

            <TextView
                android:id="@+id/TextView22"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/TextView21"
                android:layout_below="@+id/TextView21"
                android:text="Medium Text"
                android:layout_weight="1"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp"
                tools:ignore="HardcodedText" />

            <TextView
                android:id="@+id/TextView23"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/TextView22"
                android:layout_below="@+id/TextView22"
                android:onClick="newActivity"
                android:text="Medium Text"
                android:layout_weight="1"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp"
                tools:ignore="HardcodedText" />
    </LinearLayout>

    <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:weightSum="3" >
            <TextView
                android:id="@+id/txtTitlev3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_alignParentTop="true"
                android:fontFamily="Roboto-BoldCondensed.ttf"
                android:text="@string/ttlContact"
                android:textColor="@color/Turquoise4"
                android:textSize="20sp"
                android:layout_weight="1"
                android:textStyle="bold|normal" />

            <TextView
                android:id="@+id/txtTitlev2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:fontFamily="Roboto-BoldCondensed.ttf"
                android:text="@string/ttlName"
                android:textColor="@color/Turquoise4"
                android:textSize="20sp"
                android:layout_weight="1"
                android:textStyle="bold|normal" />

            <TextView
                android:id="@+id/TextView21"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_above="@+id/TextView32"
                android:layout_centerHorizontal="true"
                android:text="Medium Text"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp"
                android:layout_weight="1"
                tools:ignore="HardcodedText" />
    </LinearLayout>

</LinearLayout>

答案 1 :(得分:0)

为什么不尝试通过RelativeLayout.layoutparams和相对布局java编码来使用它。

你可以使用任何布局来做到这一点,例如我在这里使用线性布局

Textview hname, game,time;
    hname = new TextView(context);
            game =new TextView(context);
            time = new TextView(context);

LinearLayout ll = new LinearLayout(context);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(600, 100);

//add the settext here for ur textviews

ll.addView(hname, lp);
ll.addView(game, lp);
ll.addView(time, lp);

setcontentview(ll);

答案 2 :(得分:0)

你可以使用这样的布局。我使用了3行的表格布局。第一行显示列标题,其他行显示数据。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:stretchColumns="*" >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp" >

            <TextView
                android:id="@+id/ID"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="ID"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Name"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <TextView
                android:id="@+id/textView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Contact"
                android:textAppearance="?android:attr/textAppearanceMedium" />

        </TableRow>

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

            <TextView
                android:id="@+id/textView4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="12"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <TextView
                android:id="@+id/textView5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Name 1"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <TextView
                android:id="@+id/textView6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="1234567"
                android:textAppearance="?android:attr/textAppearanceMedium" />

        </TableRow>

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

            <TextView
                android:id="@+id/textView7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="25"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <TextView
                android:id="@+id/textView8"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Name 2"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <TextView
                android:id="@+id/textView9"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="594751"
                android:textAppearance="?android:attr/textAppearanceMedium" />

        </TableRow>
    </TableLayout>

</LinearLayout>