2011-05-05 54 views
0

我愿做这样的陈述:(带Gimp完成) Good part is with 03 sept.不能获得良好的重叠与RelativeLayout的

而此时我只得到这样的: Bad result

我的布局xml文件是在目前这样的:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/itemRoot" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:paddingBottom="4sp" 
android:orientation="vertical"> 
<LinearLayout 
    android:id="@+id/bigbox" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
android:layout_marginTop="20px" 
android:background="#caced4" 
android:clipChildren="false" 
android:onClick="itemClicked"> 
    <RelativeLayout 
    android:id="@+id/box" 
    android:layout_marginTop="-10px" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    > 
     <TableLayout android:id="@+id/TableLayout01" 
     android:layout_width="40dip" 
     android:layout_height="40dip" 
     android:background="@drawable/corner" 
     > 
     <TextView android:text="03 sept." 
     android:background="#424e5f" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="3px" 
     android:layout_marginBottom="3px" 
     android:layout_marginRight="3px" 
     android:layout_marginTop="3px" 
     android:id="@+id/itemPubdate" 
     android:gravity="center" android:textStyle="bold"/> 
     </TableLayout> 
    </RelativeLayout> 
    <LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:paddingLeft="4sp"> 
     <TextView android:id="@+id/itemTitle" 
     android:text="Arrêtez moi ces répondeurs d'email" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:maxLines="2" 
     android:textColor="#424e5f" 
     android:textSize="13sp" 
     android:textStyle="bold"/> 
     <TextView android:id="@+id/itemDescription" 
     android:text="Qui, suite à l'envoi d'un email, n'a pas reçu etc." 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textColor="#000000" 
     android:maxLines="3" 
     android:textSize="11sp"/> 
    </LinearLayout> 
</LinearLayout> 

我已经尝试了很多与android:clipChildren="false"结合没有任何好结果..如果有人有这样的解决方案...这将帮助我这么多。

感谢,

+0

您是否需要与第一张图片相同的版面? – Pasha 2011-05-05 08:03:31

+0

请参阅我的答案,以获得快速和其他有效的解决方案。 – rekaszeru 2011-05-05 10:00:28

回答

1

您也可以尝试一个简单的布局,如:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/itemRoot" android:layout_width="match_parent" 
    android:layout_height="wrap_content" android:paddingBottom="4sp"> 
    <LinearLayout android:paddingLeft="45dip" android:background="#caced4" 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:orientation="vertical" android:layout_marginTop="10dp" 
     android:clipChildren="false" android:onClick="itemClicked"> 
     <TextView android:id="@+id/itemTitle" 
      android:text="Arrêtez moi ces répondeurs d'email" 
      android:layout_width="wrap_content" android:layout_height="wrap_content" 
      android:maxLines="2" android:textColor="#424e5f" android:textSize="13sp" 
      android:textStyle="bold" /> 
     <TextView android:id="@+id/itemDescription" 
      android:text="Qui, suite à l'envoi d'un email, n'a pas reçu etc." 
      android:layout_width="wrap_content" android:layout_height="wrap_content" 
      android:textColor="#000000" android:maxLines="3" android:textSize="11sp" /> 
    </LinearLayout> 
    <TableLayout android:id="@+id/TableLayout01" android:background="@drawable/corner" 
     android:layout_width="40dip" android:layout_height="40dip"> 
     <TextView android:id="@+id/itemPubdate" android:text="03 sept." 
      android:background="#424e5f" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="3px" android:layout_marginBottom="3px" 
      android:layout_marginRight="3px" android:layout_marginTop="3px" 
      android:gravity="center" android:textStyle="bold" /> 
    </TableLayout> 
</RelativeLayout> 

或想详细了解一下它,采取充分利用RelativeLayout。 。
这将只包含您的日历项(TableLayout),和两个TextViews,但对于这个你可能需要自定义绘制(一个简单的素色的一个与android:top="10dp"

更新
随着RelativeLayout和两个自定义可绘(从中您已经部分有:corner),就可以实现这个布局:

overlapping layout sample

对于这样的因此您需要
row_layout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/itemRoot" android:layout_width="match_parent" 
    android:layout_height="wrap_content" android:padding="4sp" 
    android:background="@drawable/overlap" android:onClick="itemClicked"> 
    <TextView android:id="@+id/itemPubdate" android:text="03 sept." 
     android:background="@drawable/overlap_calendar" 
     android:layout_width="40dip" android:layout_height="40dip" 
     android:gravity="center" android:textStyle="bold" /> 
    <TextView android:id="@+id/itemTitle" android:paddingLeft="5sp" 
     android:text="Arrêtez moi ces répondeurs d'email" 
     android:layout_width="wrap_content" android:layout_height="wrap_content" 
     android:maxLines="2" android:textColor="#424e5f" android:textSize="13sp" 
     android:textStyle="bold" android:ellipsize="end" 
     android:layout_toRightOf="@id/itemPubdate" android:paddingTop="10dp"/> 
    <TextView android:id="@+id/itemDescription" android:paddingLeft="5sp" 
     android:text="Qui, suite à l'envoi d'un email, n'a pas reçu etc." 
     android:layout_width="wrap_content" android:layout_height="wrap_content" 
     android:textColor="#000000" android:maxLines="3" android:textSize="11sp" 
     android:layout_toRightOf="@id/itemPubdate" 
     android:layout_below="@id/itemTitle" /> 
</RelativeLayout> 

和两个引用可绘制
RES /绘制/ overlap.xml

<?xml version="1.0" encoding="UTF-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:top="10dp" android:bottom="2dp" android:left="2dp" 
     android:right="2dp"> 
     <shape> 
      <solid android:color="#caced4" /> 
      <stroke android:width="3dp" color="#caced4" /> 
      <padding android:left="2dp" android:top="2dp" android:right="2dp" 
       android:bottom="2dp" /> 
     </shape> 
    </item> 
</layer-list> 

RES /绘制/ overlap_calendar.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <solid android:color="#f0f0f0" /> 
      <corners android:bottomRightRadius="3dp" 
       android:bottomLeftRadius="3dp" android:topLeftRadius="3dp" 
       android:topRightRadius="3dp" /> 
     </shape> 
    </item> 
    <item android:top="2dp" android:left="2dp" android:right="2dp" 
     android:bottom="2dp"> 
     <shape android:shape="rectangle"> 
      <solid android:color="#424e5f" /> 
      <corners android:bottomRightRadius="3dp" 
       android:bottomLeftRadius="3dp" android:topLeftRadius="3dp" 
       android:topRightRadius="3dp" /> 
     </shape> 
    </item> 
</layer-list> 
+0

非常感谢,非常好,完美无缺! – Footcow 2011-05-05 15:31:31

1

试试这个

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/itemRoot" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingBottom="4sp" 
    android:orientation="vertical" 
> 
    <RelativeLayout 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
    > 
     <View 
      android:layout_width="fill_parent" 
      android:background="#caced4" 
      android:layout_height="wrap_content" 
      android:layout_alignBottom="@+id/bigbox" 
      android:layout_alignTop="@+id/bigbox" 
     ></View> 
     <RelativeLayout 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:id="@+id/box" 
     > 
      <TableLayout 
       android:layout_width="40dip" 
       android:id="@+id/TableLayout01" 
       android:background="@drawable/corner" 
       android:layout_height="40dip" 
      > 
       <TextView 
        android:textStyle="bold" 
        android:text="03 sept." 
        android:gravity="center" 
        android:layout_marginRight="3px" 
        android:id="@+id/itemPubdate" 
        android:layout_marginBottom="3px" 
        android:layout_width="wrap_content" 
        android:layout_marginTop="3px" 
        android:background="#424e5f" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="3px" 
       ></TextView> 
      </TableLayout> 
     </RelativeLayout> 
     <LinearLayout 
      android:id="@+id/bigbox" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="20px" 
      android:onClick="itemClicked" 
      android:layout_width="match_parent" 
      android:clipChildren="false" 
      android:orientation="horizontal" 
      android:layout_toRightOf="@+id/box" 
     > 
      <LinearLayout 
       android:id="@+id/linearLayout1" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:paddingLeft="4sp" 
       android:orientation="vertical" 
      > 
       <TextView 
        android:textStyle="bold" 
        android:maxLines="2" 
        android:text="Arrêtez moi ces répondeurs d'email" 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:textColor="#424e5f" 
        android:id="@+id/itemTitle" 
        android:textSize="13sp" 
       ></TextView> 
       <TextView 
        android:maxLines="3" 
        android:text="Qui, suite à l'envoi d'un email, n'a pas reçu etc." 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:textColor="#000000" 
        android:id="@+id/itemDescription" 
        android:textSize="11sp" 
       ></TextView> 
      </LinearLayout> 
     </LinearLayout> 
    </RelativeLayout> 
</LinearLayout> 
+0

也谢谢,但@rekaszeru解决方案似乎对我来说更清洁! – Footcow 2011-05-05 15:32:13