[英]ImageButton overlapping issue
我有一個帶有內部RelativeLayout的RelativeLayout。 它在左側包含一個TextView,在右側包含一個ImageButton(星號)。
如您所見,盡管我在ImageButton上設置了layout_alignEnd和layout_alignRight標簽,但是ImageButton覆蓋了文本。
這是我內部的RelativeLayout:
<RelativeLayout
android:id="@+id/layout_question"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/toolbar"
android:layout_toEndOf="@+id/tv_topic"
android:layout_toRightOf="@+id/tv_topic"
android:gravity="top"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_question"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:padding="5dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textStyle="bold"/>
<ImageButton
android:id="@+id/bt_favorite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="@+id/tv_question"
android:layout_alignRight="@+id/tv_question"
android:background="#00ffffff"
android:src="@drawable/star"/>
</RelativeLayout>
我想實現文本始終位於ImageButton的左側,並且ImageButton永遠不會與文本重疊。
這是什么問題
只需在TextView
使用layout_toLeftOf
屬性
android:layout_toLeftOf="@+id/bt_favorite"
您在ImageView
使用layout_alignParentRight
屬性
android:layout_alignParentRight="true"
試試這個
<RelativeLayout
android:id="@+id/layout_question"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/toolbar"
android:layout_toEndOf="@+id/tv_topic"
android:layout_toRightOf="@+id/tv_topic"
android:gravity="top"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_question"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/bt_favorite"
android:padding="5dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textStyle="bold"/>
<ImageButton
android:id="@+id/bt_favorite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="#00ffffff"
android:src="@drawable/star"/>
</RelativeLayout>
使相對於線性,並根據需要調整權重。
<LinearLayout
android:id="@+id/layout_question"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:orientation="horizontal"
android:weightSum="6">
<TextView
android:id="@+id/tv_question"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:padding="5dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textStyle="bold"
android:layout_weight="5"/>
<ImageButton
android:id="@+id/bt_favorite"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignEnd="@+id/tv_question"
android:layout_alignRight="@+id/tv_question"
android:background="#00ffffff"
android:src="@mipmap/ic_launcher"
android:layout_weight="1"/>
</LinearLayout>
基本上,您不需要將Textview(tv_question)設置為android:layout_alignParentLeft="true"
因為其寬度為match_parent。 因此,如果您想讓textview緊靠imageview旁邊,請執行此操作。 首先固定您的imageview的位置,例如,右對齊,然后讓TextView在imageview的左側
<ImageButton
android:id="@+id/bt_favorite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:background="#00ffffff"
android:src="@drawable/star"/>
<TextView
android:id="@+id/tv_question"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/bt_favorite"
android:padding="5dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textStyle="bold"/>
最后,您不必設置RelativeLayout屬性-android:orientation,它不起作用。 試試這個,它應該起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.