如何打造羽毛球场布局?

时间:2012-06-18 11:16:36

标签: android android-layout

我正在尝试为我的应用建立一个羽毛球场布局。

经过一些实验后,我得到了一个漂亮的样子(field.xml见下文)。

我知道这可能不是创建羽毛球场布局的最佳方式,但从现在起我没有找到更好的解决方案。如果有人对如何建立这个领域有更好的了解,我将不胜感激。

主要问题是,我想将文本添加到某些文本文件中。只要我在字段中添加文字,我的布局就会被破坏:broken layout.png

当我从这些文本元素中删除layout_width属性:wrap_content时,UI编辑器会正确显示它:wanted layout.png

但是由于缺少layout_width属性,应用程序将不会在我的设备上加载此布局。

如何在不损坏布局的情况下向字段添加文本的任何想法?

field.xml:          

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/row1"
    style="@style/topborder"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.1"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/field11"
        style="@style/leftrightborder"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="0.3"
        android:background="#000000"
        android:gravity="center_horizontal" />

    <TextView
        android:id="@+id/field12"
        style="@style/rightborder"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#000000"
        android:gravity="center"
        android:text="Team 1" />

    <TextView
        android:id="@+id/field13"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="" />

    <TextView
        android:id="@+id/field14"
        style="@style/leftrightborder"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="0.3"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="" />
</LinearLayout>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/row2"
    style="@style/bottomborder"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.7"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/field21"
        style="@style/leftrightborder"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="0.3"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="" />

    <TextView
        android:id="@+id/field22"
        style="@style/rightborder"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#000000"
        android:gravity="center"
        android:text="21"
        android:textSize="50dp" />

    <TextView
        android:id="@+id/field23"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="" />

    <TextView
        android:id="@+id/field24"
        style="@style/leftrightborder"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="0.3"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="" />
</LinearLayout>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/row3"
    style="@style/bottomborder"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.3"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/field31"
        style="@style/leftrightborder"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="0.3"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="" />

    <TextView
        android:id="@+id/field32"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="2"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="" />

    <TextView
        android:id="@+id/field33"
        style="@style/leftrightborder"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="0.3"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="" />
</LinearLayout>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/row4"
    style="@style/bottomborder"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.3"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/field41"
        style="@style/leftrightborder"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="0.3"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="" />

    <TextView
        android:id="@+id/field42"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="2"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="" />

    <TextView
        android:id="@+id/field43"
        style="@style/leftrightborder"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="0.3"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="" />
</LinearLayout>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:id="@+id/row5"
    android:layout_height="wrap_content"
    android:layout_weight="0.7"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/field51"
        style="@style/leftrightborder"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="0.3"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="" />

    <TextView
        android:id="@+id/field52"
        style="@style/rightborder"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="" />

    <TextView
        android:id="@+id/field53"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#000000"
        android:gravity="center"
        android:text="10"
        android:textSize="50dp" />

    <TextView
        android:id="@+id/field54"
        style="@style/leftrightborder"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="0.3"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="" />
</LinearLayout>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/bottomborder"
    android:id="@+id/row6"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.1"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/field61"
        style="@style/leftrightborder"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="0.3"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="" />

    <TextView
        android:id="@+id/field62"
        style="@style/rightborder"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="" />

    <TextView
        android:id="@+id/field63"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#000000"
        android:gravity="center"
        android:text="Team 2" />

    <TextView
        android:id="@+id/field64"
        style="@style/leftrightborder"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="0.3"
        android:background="#000000"
        android:gravity="center_horizontal"
        android:text="" />
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

正如this post中提到的,我刚刚发现,我只需要在每个文本视图上设置layout_width:0dp。不是它工作正常!

答案 1 :(得分:0)

在您的布局layout_weight中,值不正确。如果一行应使用0.1的屏幕,第二行应使用0.9的屏幕。然后,您将第一行的layout_weight设置为0.9,将第二行的layout_weight设置为0.1。 这是具有正确权重的布局:     

    <LinearLayout
        android:id="@+id/row1"
        style="@style/topborder"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="2.1"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/field11"
            style="@style/leftrightborder"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2.3"
            android:background="#000000"
            android:gravity="center_horizontal" />

        <TextView
            android:id="@+id/field12"
            style="@style/rightborder"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1.6"
            android:background="#000000"
            android:gravity="center"
            android:text="Team 1" />

        <TextView
            android:id="@+id/field13"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1.6"
            android:background="#000000"
            android:gravity="center_horizontal"
            android:text="" />

        <TextView
            android:id="@+id/field14"
            style="@style/leftrightborder"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2.3"
            android:background="#000000"
            android:gravity="center_horizontal"
            android:text="" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/row2"
        style="@style/bottomborder"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1.5"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/field21"
            style="@style/leftrightborder"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2.3"
            android:background="#000000"
            android:gravity="center_horizontal"
            android:text="" />

        <TextView
            android:id="@+id/field22"
            style="@style/rightborder"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1.6"
            android:background="#000000"
            android:gravity="center"
            android:text="21"
            android:textSize="50dp" />

        <TextView
            android:id="@+id/field23"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2.3"
            android:background="#000000"
            android:gravity="center_horizontal"
            android:text="" />

        <TextView
            android:id="@+id/field24"
            style="@style/leftrightborder"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1.6"
            android:background="#000000"
            android:gravity="center_horizontal"
            android:text="" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/row3"
        style="@style/bottomborder"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1.9"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/field31"
            style="@style/leftrightborder"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2.3"
            android:background="#000000"
            android:gravity="center_horizontal"
            android:text="" />

        <TextView
            android:id="@+id/field32"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="0.6"
            android:background="#000000"
            android:gravity="center_horizontal"
            android:text="" />

        <TextView
            android:id="@+id/field33"
            style="@style/leftrightborder"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2.3"
            android:background="#000000"
            android:gravity="center_horizontal"
            android:text="" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/row4"
        style="@style/bottomborder"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1.9"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/field41"
            style="@style/leftrightborder"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2.3"
            android:background="#000000"
            android:gravity="center_horizontal"
            android:text="" />

        <TextView
            android:id="@+id/field42"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="0.6"
            android:background="#000000"
            android:gravity="center_horizontal"
            android:text="" />

        <TextView
            android:id="@+id/field43"
            style="@style/leftrightborder"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2.3"
            android:background="#000000"
            android:gravity="center_horizontal"
            android:text="" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/row5"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1.5"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/field51"
            style="@style/leftrightborder"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2.3"
            android:background="#000000"
            android:gravity="center_horizontal"
            android:text="" />

        <TextView
            android:id="@+id/field52"
            style="@style/rightborder"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1.6"
            android:background="#000000"
            android:gravity="center_horizontal"
            android:text="" />

        <TextView
            android:id="@+id/field53"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1.6"
            android:background="#000000"
            android:gravity="center"
            android:text="10"
            android:textSize="50dp" />

        <TextView
            android:id="@+id/field54"
            style="@style/leftrightborder"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2.3"
            android:background="#000000"
            android:gravity="center_horizontal"
            android:text="" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/row6"
        style="@style/bottomborder"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="2.1"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/field61"
            style="@style/leftrightborder"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2.3"
            android:background="#000000"
            android:gravity="center_horizontal"
            android:text="" />

        <TextView
            android:id="@+id/field62"
            style="@style/rightborder"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1.6"
            android:background="#000000"
            android:gravity="center_horizontal"
            android:text="" />

        <TextView
            android:id="@+id/field63"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1.6"
            android:background="#000000"
            android:gravity="center"
            android:text="Team 2" />

        <TextView
            android:id="@+id/field64"
            style="@style/leftrightborder"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="2.3"
            android:background="#000000"
            android:gravity="center_horizontal"
            android:text="" />
    </LinearLayout>

</LinearLayout>