我的布局如下:
您可以在此处看到小游戏图标。我想要的是,如果让该小游戏图标具有可见性,则视图应如下所示:
但是我目前的状态(如果我想知道可见度)转到小游戏图标:
我的xml:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="76dp"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="@drawable/conversation_list_border">
<de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/image"
android:layout_width="62dp"
android:layout_height="62dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="6dp"
android:src="@drawable/default_color_1" />
<TextView
android:id="@+id/nameText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_toRightOf="@+id/image"
android:text="Tolgay Toklar"
android:textColor="#727272"
android:textSize="13sp"
android:textStyle="bold" />
<RelativeLayout
android:id="@+id/unreadMessageBg"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentRight="true"
android:layout_marginTop="30dp"
android:layout_marginRight="22dp"
android:background="@drawable/konusmalar_chat_count_bg">
<TextView
android:id="@+id/unreadMessageCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:fontFamily="sans-serif"
android:text="5"
android:textColor="@color/white"
android:textSize="12sp"
android:textStyle="bold" />
</RelativeLayout>
<TextView
android:id="@+id/bioText"
android:layout_width="199dp"
android:layout_height="wrap_content"
android:layout_below="@+id/nameText"
android:layout_marginStart="2dp"
android:layout_marginLeft="0dp"
android:layout_marginTop="5dp"
android:layout_toStartOf="@+id/imageView7"
android:layout_toLeftOf="@+id/imageView7"
android:layout_toEndOf="@+id/imageView22"
android:layout_toRightOf="@+id/imageView22"
android:maxLines="1"
android:text="Selam Nasılsın?Selam Nasılsın?Selam Nasılsın?Selam Nasılsın?"
android:textColor="#7A7A7A"
android:textSize="15sp"
android:textStyle="normal" />
<ImageView
android:id="@+id/imageView22"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_below="@+id/nameText"
android:layout_alignStart="@+id/nameText"
android:layout_alignLeft="@+id/nameText"
android:layout_marginStart="0dp"
android:layout_marginLeft="0dp"
android:layout_marginTop="6dp"
android:layout_marginRight="3dp"
app:srcCompat="@drawable/send_voice_record" />
</RelativeLayout>
我该如何解决此问题?
答案 0 :(得分:0)
将imageView22(我想这是播放的imageview)和bioText放在相对的布局内,例如:
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/nameText"
android:layout_alignStart="@+id/nameText"
android:layout_alignLeft="@+id/nameText">
<ImageView
android:id="@+id/imageView22"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_marginStart="0dp"
android:layout_marginLeft="0dp"
android:layout_marginTop="6dp"
android:layout_marginRight="3dp"
app:srcCompat="@drawable/send_voice_record" />
<TextView
android:id="@+id/bioText"
android:layout_width="199dp"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:layout_marginLeft="0dp"
android:layout_marginTop="5dp"
android:layout_toEndOf="@+id/imageView22"
android:layout_toRightOf="@+id/imageView22"
android:maxLines="1"
android:text="Selam Nasılsın?Selam Nasılsın?Selam Nasılsın?Selam Nasılsın?"
android:textColor="#7A7A7A"
android:textSize="15sp"
android:textStyle="normal" />
</RelativeLayout>
使图像视图不可见时,TextView将占据imagview之前的空间。当然,您必须修复其他属性。
答案 1 :(得分:0)
使用ConstraintLayout
代替RelativeLayout
。 ConstraintLayout基本上是RelativeLayout的更新更好的版本,因此转换应该不会太差。对您来说幸运的是,当视图在ConstraintLayout中为GONE
时,任何受其约束的视图的行为就好像目标视图仍然存在,大小仅为0。
这是您使用ConstraintLayout
的布局。我已经删除了ID和约束以外的所有属性,以使您更加清楚地知道需要使用哪些约束。
<androidx.constraintlayout.widget.ConstraintLayout>
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/image"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
<TextView
android:id="@+id/nameText"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@+id/image"/>
<RelativeLayout
android:id="@+id/unreadMessageBg"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<TextView ... />
</RelativeLayout>
<TextView
android:id="@+id/bioText"
app:layout_constraintTop_toBottomOf="@+id/nameText"
app:layout_constraintStart_toEndOf="@+id/imageView22"/>
<ImageView
android:id="@+id/imageView22"
app:layout_constraintTop_toBottomOf="@+id/nameText"
app:layout_constraintStart_toStartOf="@+id/nameText"/>
</androidx.constraintlayout.widget.ConstraintLayout>
请注意,如果您不使用androidx
,但仍在使用旧的支持库,则标签将改为:
<android.support.constraint.ConstraintLayout>
答案 2 :(得分:0)
将imageView22
和bioText
放入另一个布局。关键是将android:layout_alignWithParentIfMissing="true"
设置为bioText
。
试试这个:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="76dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:background="@drawable/conversation_list_border">
<de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/image"
android:layout_width="62dp"
android:layout_height="62dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="6dp"
android:src="@drawable/default_color_1" />
<TextView
android:id="@+id/nameText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_toRightOf="@+id/image"
android:text="Tolgay Toklar"
android:textColor="#727272"
android:textSize="13sp"
android:textStyle="bold" />
<RelativeLayout
android:id="@+id/unreadMessageBg"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentRight="true"
android:layout_marginRight="22dp"
android:layout_marginTop="30dp"
android:background="@drawable/konusmalar_chat_count_bg">
<TextView
android:id="@+id/unreadMessageCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:fontFamily="sans-serif"
android:text="5"
android:textColor="@color/white"
android:textSize="12sp"
android:textStyle="bold" />
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/nameText"
android:layout_toEndOf="@id/image"
android:layout_toRightOf="@id/image">
<TextView
android:id="@+id/bioText"
android:layout_width="199dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="0dp"
android:layout_marginStart="2dp"
android:layout_marginTop="5dp"
android:layout_toEndOf="@id/imageView22"
android:layout_toRightOf="@id/imageView22"
android:maxLines="1"
android:layout_alignWithParentIfMissing="true"
android:text="Selam Nasılsın?Selam Nasılsın?Selam Nasılsın?Selam Nasılsın?"
android:textColor="#7A7A7A"
android:textSize="15sp"
android:textStyle="normal" />
<ImageView
android:id="@+id/imageView22"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginLeft="0dp"
android:layout_marginRight="3dp"
android:layout_marginStart="0dp"
android:layout_marginTop="6dp"
app:srcCompat="@drawable/send_voice_record" />
</RelativeLayout>
</RelativeLayout>