android:layout_alignParentBottom在运行时不起作用

时间:2016-04-24 12:34:58

标签: android android-recyclerview relativelayout

android:layout_alignParentBottom的每个项目ImageView RelativeLayout内的RecyleView使用Preview。{ 但它只能在 <android.support.v7.widget.CardView android:id="@+id/cv" android:layout_width="match_parent" android:layout_height="wrap_content"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:id="@+id/item_layoutStart" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#E8F5E9" android:orientation="vertical"> <ImageView android:layout_width="25dp" android:layout_height="25dp" android:layout_gravity="center_vertical|right" android:clickable="true" android:scaleType="fitCenter" android:src="@mipmap/ic_launcher" /> <ImageView android:layout_width="25dp" android:layout_height="25dp" android:layout_gravity="center_vertical|right" android:clickable="true" android:scaleType="fitCenter" android:src="@mipmap/ic_launcher" /> <ImageView android:layout_width="25dp" android:layout_height="25dp" android:layout_gravity="center_vertical|right" android:clickable="true" android:scaleType="fitCenter" android:src="@mipmap/ic_launcher" /> <TextView android:id="@+id/item_tvRepeatTime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="10" /> </LinearLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ff0" android:layout_alignTop="@id/item_layoutStart" android:layout_alignBottom="@id/item_layoutStart" android:orientation="vertical" android:layout_toRightOf="@id/item_layoutStart"> <TextView android:id="@+id/item_tvTitle" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="aa aa aaaaaa aa aa aaaaaa aa aa aaaaaa " /> <TextView android:id="@+id/item_tvResult" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/item_tvTitle" android:text="aa aa aaaaaa aa aa aaaaaa aa aa aaaaaa" /> <ImageView android:id="@+id/item_ivExpand" android:layout_width="30dp" android:layout_height="30dp" android:layout_alignParentRight="true" android:layout_alignParentBottom="true" android:padding="3dp" android:src="@drawable/selector_arrow_down"/> </RelativeLayout> </RelativeLayout> </android.support.v7.widget.CardView> 模式下完美运行,当我运行应用程序时它不起作用。我不知道为什么会发生这种情况 我在截图

中详细解释了我的问题

预览中 enter image description here
在运行时
enter image description here

RelativeLayout

更新 如果我按特定值修正android:layout_alignParentBottom的高度, <RelativeLayout android:layout_width="match_parent" android:layout_height="200dp" > 工作

RelativeLayout

但就我而言,我希望LinearLayout身高等于<RelativeLayout android:layout_alignTop="@id/item_layoutStart" android:layout_alignBottom="@id/item_layoutStart" >

android:layout_alignParentBottom

sectionView.userInteractionEnabled = false 无效

任何帮助都会得到很好的回报

1 个答案:

答案 0 :(得分:1)

虽然这个解决方案显然与编辑器中布局的外观混淆,但它解决了运行时布局的问题。

首先,将外部RelativeLayout更改为LinearLayout。然后,在内部RelativeLayout上,完全删除layout_alignToplayout_alignBottom属性,并将layout_height设置为match_parent

正如您在发布的屏幕截图中看到的那样,ImageView正在布局,就好像其父RelativeLayout的高度正在包裹其子View一样,按照其layout_height设置。但是,在RelativeLayout的孩子View布局后,其layout_alignToplayout_alignBottom属性正在应用,并且已调整大小以匹配{ {1}}的高度,LinearLayout只是停留在原来的位置。

使用ImageView作为外部LinearLayout,并将内部ViewGroup的高度设置为RelativeLayoutmatch_parent有一个在确定其子RelativeLayout之前应用了确定的高度,View的{​​{1}}和ImageView属性将其放在正确的位置。