0

我正在尝试为看起来像附加图像(在 Photoshop 中制作)的列表视图项目定义布局。我应该使用什么布局? 在此处输入图像描述

4

4 回答 4

1

您现在只需要使用填充和边距即可。

结果

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

    <LinearLayout 
            android:id="@+id/gray_layout"
            android:layout_width="40dp"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:background="#888888"
            android:layout_alignParentLeft="true"
            android:gravity="center_vertical">

        <TextView android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="AUG"/>

        <TextView android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="18"/>

        <TextView android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="2011"/>

    </LinearLayout>

    <View 
        android:id="@+id/divider"
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:background="#000088"
        android:layout_toRightOf="@id/gray_layout"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="30dp"/>

    <TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/divider"
        android:text="Title"
        android:layout_marginBottom="5dp"
        android:layout_alignBottom="@id/divider"/>

    <TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@id/divider"
        android:text="18. aug 23:49"
        android:layout_marginBottom="5dp"
        android:layout_alignBottom="@id/divider"/>

    <TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/divider"
        android:text="Short msg"
        android:layout_marginTop="10dp"
        android:layout_alignTop="@id/divider"/>

    <ImageView 
        android:id="@+id/info_button"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true" 
        android:background="#ff0000"/>

    <ImageView 
        android:id="@+id/arrow_button"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_above="@id/info_button"
        android:layout_toLeftOf="@id/info_button"
        android:background="#00ff00"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"        
        android:layout_above="@id/arrow_button"
        android:layout_toLeftOf="@id/info_button"
        android:layout_alignLeft="@id/arrow_button"
        android:gravity="center_horizontal"
        android:text="30" />

</RelativeLayout>
于 2013-08-20T23:18:47.803 回答
1

我建议首先LinearLayout使用水平orientation,然后在 a 内部RelativeLayout使用属性从左/上到右/下放置其他视图:layout_alignParentTop, layout_alignParentBottom,layout_alignParentLeftlayout_alignParentRight...

于 2013-08-20T22:21:20.467 回答
1

我建议RelativeLayout为此使用 a 。否则,您可能会嵌套过多。我不打算编写布局,但您应该查看RelativeLayout Docs并查看您可以提供的所有可能的属性Views。你也可能最终得到 child LinearLayout,这没关系。但我会RelativeLayout为父母使用。

如果您还没有决定,最好的办法是在 xml 中快速绘制出来,您认为每个人可能会怎么看ViewGroup似乎是最有效的。有时很难说,除非您通过编写 xml 代码或至少一些伪代码来继续它。

于 2013-08-20T22:21:49.227 回答
-1

您可以嵌套多个具有不同方向的 LinearLayout 来实现此目的。

于 2013-08-20T22:12:52.383 回答