問題緣由:需要用RecyclerView實現一個時間軸效果。
于是順理成章的想到在RecyclerView的item中拼接出一個時間軸,于是噼里啪啦碼下如下的代碼:
learLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:id="@+id/item_tend_time_line"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:id="@+id/space_view"
android:layout_width="2dp"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:layout_height="45dp"
android:background="@color/tendsBlue"/>
android:layout_marginLeft="7dp"
android:layout_marginStart="7dp"
android:layout_marginTop="8dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/xq_icon_gongsi"/>
android:id="@+id/customer_tends_date"
android:layout_marginLeft="50dp"
android:layout_marginTop="9dp"
android:gravity="center_vertical"
android:text="2016-10-1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:id="@+id/item_tend_content_line"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_marginLeft="13dp"
android:layout_marginStart="13dp"
android:layout_marginTop="28dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/dian"/>
android:id="@+id/time_line"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_width="2dp"
android:layout_height="match_parent"
android:background="@color/tendsBlue"/>
android:id="@+id/item_content_line"
android:layout_marginLeft="30dp"
android:layout_marginStart="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="20dp"
android:layout_marginEnd="20dp"
android:background="@drawable/tends_pop_bg">
android:id="@+id/item_charge_name"
android:text="櫻木花道"
android:textColor="@color/titleActionColor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:id="@+id/item_trend_time"
android:text="12:01"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:textColor="@color/titleActionColor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:id="@+id/item_tend_content"
android:layout_marginTop="4dp"
android:layout_below="@id/item_charge_name"
android:minHeight="60dp"
android:maxLines="6"
android:text="這里是客戶動態內容"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
android:id="@+id/item_tend_from"
android:layout_marginBottom="4dp"
android:layout_below="@id/item_tend_content"
android:text="來自客戶"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:id="@+id/item_tend_from_customer"
android:layout_marginBottom="4dp"
android:layout_below="@id/item_tend_content"
android:layout_toRightOf="@id/item_tend_from"
android:layout_toEndOf="@id/item_tend_from"
android:paddingLeft="8dp"
android:text="來自客戶"
android:textColor="@color/titleActionColor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
在preview里面看的效果如下:
完美,就是產品經理要的效果。
可是真機一運行,問題就出來了
按理說,View android:id="@+id/time_line" 的高度是match_parent,怎么也不會比在同一個父RelativeLayout下的,wrapcontent的view小啊。可偏偏View android:id="@+id/time_line"就是要比,高度是wrap_content的RelativeLayout android:id="@+id/item_content_line"要短一節。試了試給View android:id="@+id/time_line"添加android:layout_alignParentTop="true"android:layout_alignParentBottom="true"屬性,同樣無濟于事。
于是不得不采用另外一種方法來實現效果:使用shape的stroke屬性來實現軸的效果。完美解決了問題。
但是對于上面那種方法失效的原因始終還是耿耿于懷,希望有高手能夠不吝賜教