2011-12-16 72 views
0

我想在我的Android应用程序中显示包含游戏分数的列表。该名单应该是这样的:5中央元素的列布局

enter image description here

,你可以在上图中看到我有每行5个视图元素:

  1. 第一队名
  2. 一线队标志
  3. 游戏得分
  4. 二队队旗
  5. 二队队名

元素2,3和4应该总是居中居中,这样游戏的冒号和旗帜就会直接位于上方/下方,而队名的长度可以变化。

到目前为止,我已经用RelativeLayout,TableLayout和LinearLayouts进行了实验,但找不到工作解决方案。

什么是最好的方法来达到desried布局?该布局应该适用于Android 1.6,垂直和水平方向。

回答

0

摆弄RelativeLayouts后,我设法找到以下解决方案,在纵向和横向模式下工作。

<RelativeLayout 
    android:id="@+id/mainlayout" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/headerLayout" 
    android:layout_centerVertical="true" 
    android:layout_marginBottom="5dip" 
    android:layout_marginTop="5dip" > 

    <TextView 
     android:id="@+id/teamAName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:layout_toLeftOf="@+id/innerlayout" 
     android:gravity="center_vertical|right" 
     android:text="Team A" 
     android:textColor="@color/black" 
     android:textSize="12dip" 
     android:textStyle="bold" /> 

    <RelativeLayout 
     android:id="@id/innerlayout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:paddingLeft="6dip" 
     android:paddingRight="6dip" > 

     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toLeftOf="@+id/score" 
      android:src="@drawable/de" /> 

     <TextView 
      android:id="@id/score" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:layout_marginLeft="6dip" 
      android:layout_marginRight="6dip" 
      android:background="@drawable/scorebox" 
      android:paddingLeft="6dip" 
      android:paddingRight="6dip" 
      android:text="18:00" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textColor="@color/white" 
      android:textStyle="bold" /> 

     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@id/score" 
      android:src="@drawable/de" /> 
    </RelativeLayout> 

    <TextView 
     android:id="@+id/teamBName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:layout_toRightOf="@id/innerlayout" 
     android:gravity="center_vertical" 
     android:text="Team B" 
     android:textColor="@color/black" 
     android:textSize="12dip" 
     android:textStyle="bold" /> 
</RelativeLayout> 
-1

尝试的朋友:

<LinearLayout 
    android:id="@+id/linearLayoutRow" 
    android:layout_width="fill_parent" 
    android:layout_height="50dp" > 

    <LinearLayout 
     android:id="@+id/linearLayoutTeam1" 
     android:layout_width="85dp" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayoutFlag1" 
     android:layout_width="50dp" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayoutScore" 
     android:layout_width="50dp" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayoutFlag2" 
     android:layout_width="50dp" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 
    </LinearLayout> 


    <LinearLayout 
     android:id="@+id/linearLayoutTeam2" 
     android:layout_width="85dp" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 
    </LinearLayout> 

</LinearLayout> 

,你编辑XXdp;)

+0

为什么-1如果它工作? – ademar111190 2011-12-16 17:59:20

0

listItem.xml为customAdapter可以像:

<RelativeLayot> 
<TextView TeamA alignParentLeft /> 
<RelativeLayot alignParentcenter> 
    <ImageView flag1 alignParentLeft /> 
    <TextView 1.2 alignParentcenter /> 
    <ImageView flag2 alignParentRight /> 
</RelativeLayot> 
<TextView TeamB alignParentReight/> 
</RelativeLayot> 
+0

这是正确的方向,但内部RelativeLayout的alignParent不起作用。尽管如此,我还是设法使用RelativeLayouts来找到一个可行的解决方案,请参阅我的答案。 – Philipp 2011-12-17 17:09:36

2

一个行可能是这个样子:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 
    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_weight="4" 
     android:gravity="center_vertical|right" 
     android:text="Team A" /> 
    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="2" 
     android:gravity="center" 
     android:orientation="horizontal" > 
     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/icon" /> 
     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="1 : 2" /> 
     <ImageView 
      android:id="@+id/imageView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/icon" /> 
    </LinearLayout> 
    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_weight="4" 
     android:gravity="center_vertical|left" 
     android:text="Team B" /> 
</LinearLayout> 

如果中心对象与两侧的比例不正确,请尝试更改layout_weight的值。

+0

经过仔细检查后,此方法不适用于不同长度的团队名称。我设法找到了解决相关布局的解决方案,请参阅我的答案。 – Philipp 2011-12-17 17:08:03