【问题标题】:Widget next to another in relativelayout相对布局中与另一个相邻的小部件
【发布时间】:2017-12-24 00:45:03
【问题描述】:

我有带有卡片视图的 recyclerView。

在 cardView 布局中,我想在心脏图像旁边放置文本并共享图像。我希望如果文本很长,则不要在心脏图像后面,而是应该转到新行。现在它不能按我的意愿工作。此外,在其他卡片视图中,我的心脏图像有时会比其他心脏图像大。

这是一个例子(上面的心和分享比下面大,我想要所有的心和分享图像大小相同):

我的卡片视图布局代码:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#FCFCFC"
    tools:context="showresultactivity.SlideTabsActivity">


    <android.support.v7.widget.CardView
        android:id="@+id/cardView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:cardCornerRadius="3dp"
        app:cardElevation="1dp"
        android:layout_margin="5dp"
        app:cardPreventCornerOverlap="false">

        <RelativeLayout
            android:id="@+id/relativeLayout"
            android:padding="8dp"
            android:layout_width="match_parent"
            android:layout_height="match_parent">


            <ImageView
                android:id="@+id/imagesSrcUrl"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:src="@drawable/ic_launcher"
                android:scaleType="centerCrop" />


            <TextView
                android:id="@+id/someText2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignStart="@+id/someText"
                android:layout_below="@id/street"
                android:text="some"
                android:textSize="20dp"
                android:textStyle="bold" />


            <TextView

                android:id="@+id/someText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@+id/imagesSrcUrl"
                android:layout_below="@id/someText2"
                android:textSize="12dp"
                android:text="some text "
                android:layout_marginLeft="10dp"
                android:layout_marginTop="5dp"
                />

            <TextView
                android:id="@+id/street"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="12dp"
                android:layout_alignParentTop="true"
                android:layout_alignRight="@id/cardViewLike"
                android:layout_toRightOf="@+id/imagesSrcUrl"
                android:text="asdasd sd sd ad ssssssowiskifd sdf"
                android:layout_marginTop="5dp"
                android:layout_marginLeft="10dp"
                android:drawableLeft="@drawable/custom_size_icon_next_to_text"
                android:textAlignment="gravity"
                />
            <ImageView
                android:id="@+id/cardViewLikeRed"
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_alignBottom="@+id/street"
                android:layout_alignParentEnd="true"
                android:layout_alignParentTop="true"
                android:layout_marginEnd="35dp"
                android:src="@drawable/ic_heart_red"
                />
            <ImageView
                android:id="@+id/cardViewLike"
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_alignBottom="@+id/street"
                android:layout_alignParentTop="true"
                android:layout_alignParentEnd="true"
                android:layout_marginEnd="35dp"
                android:src="@drawable/ic_heart_white"
                />

            <ImageView
                android:id="@+id/cardViewShare"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_alignBottom="@+id/street"
                android:background="@null"
                android:tintMode="src_over"
                android:src="@drawable/ic_share" />





        </RelativeLayout>
    </android.support.v7.widget.CardView>



</LinearLayout>

有时会发生:

文本在我的图像下方,但它应该在一个新行中。

【问题讨论】:

    标签: android android-layout android-cardview


    【解决方案1】:

    您需要更改 street TextView

    的相关规则

    尝试添加以下内容:

    android:layout_toEndOf="@+id/imagesSrcUrl"
    android:layout_toLeftOf="@+id/cardViewLikeRed"
    android:layout_toRightOf="@+id/imagesSrcUrl"
    android:layout_toStartOf="@+id/cardViewLikeRed"
    

    所以你的 TextView 应该是这样的:

     <TextView
                        android:id="@+id/street"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentTop="true"
                        android:layout_marginLeft="10dp"
                        android:layout_marginTop="5dp"
                        android:layout_toEndOf="@+id/imagesSrcUrl"
                        android:layout_toLeftOf="@+id/cardViewLikeRed"
                        android:layout_toRightOf="@+id/imagesSrcUrl"
                        android:layout_toStartOf="@+id/cardViewLikeRed"
                        android:drawableLeft="@drawable/custom_size_icon_next_to_text"
                        android:text="asdasd sd sd ad ssdsdhjshjshkkljkljkljkljlkjkljlkjkljlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjljlkjlkjlkjkljlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjlkjljlkjlkjdjkshjdhsdjkhjkdshfjksdhfssssowiskifd sdf"
                        android:textAlignment="gravity"
                        android:textSize="12dp" />
    

    【讨论】:

    • 另外,您不需要将 RelativeLayout 作为根布局。一个 RelativeLayout 总是需要做两次测量,所以如果你把它放在根目录下,整个布局/屏幕的测量会做两次。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 2020-12-19
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    • 2016-11-25
    相关资源
    最近更新 更多