簡體   English   中英

ImageButton重疊問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM