如何在回收者视图项中右移按钮

时间:2019-05-26 10:23:15

标签: android android-recyclerview recycler-adapter

我在xml文件下面,但是红色按钮在左侧,我想将其保留在右侧,而不是在同一行上!我尝试了多种方法来移动它,但是如果我继续右移,它总是会出现在下面。该如何解决?

我的代码的xml文件

 <?xml version="1.0" encoding="utf-8"?>
<com.balysv.materialripple.MaterialRippleLayout xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/RippleStyleBlack" xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"> 
<LinearLayout
    android:id="@+id/lyt_parent"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:minHeight="?attr/actionBarSize"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="horizontal">

        <android.support.design.widget.FloatingActionButton
            android:layout_width="wrap_content"
            android:layout_height="45dp"
            android:layout_gravity="center|center_horizontal|left"
            android:layout_margin="@dimen/spacing_large"
            android:clickable="true"
            android:foregroundGravity="left"
            android:text="ACCENT"
            android:tint="@android:color/white"
            app:backgroundTint="@color/deep_orange_400"
            app:fabSize="normal"
            app:rippleColor="@color/grey_5"
            app:srcCompat="@drawable/ic_remove" />

    </LinearLayout>
    <ImageView
        android:id="@+id/image"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_marginLeft="@dimen/spacing_large"
        android:layout_marginRight="@dimen/spacing_large"
        android:layout_marginTop="@dimen/spacing_middle"
        android:src="@drawable/photo_female_1" />

    <View
        android:layout_width="@dimen/spacing_medium"
        android:layout_height="0dp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingBottom="@dimen/spacing_middle"
            android:paddingTop="@dimen/spacing_middle">

            <TextView
                android:id="@+id/name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginEnd="@dimen/spacing_middle"
                android:layout_marginRight="@dimen/spacing_middle"
                android:text="People Name"
                android:textAppearance="@style/TextAppearance.AppCompat.Medium"
                android:textColor="@color/grey_90" />

            <TextView
                android:id="@+id/description"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginEnd="@dimen/spacing_middle"
                android:layout_marginRight="@dimen/spacing_middle"
                android:layout_marginTop="@dimen/spacing_medium"
                android:maxLines="2"
                android:text="@string/middle_lorem_ipsum"

                android:textAppearance="@style/TextAppearance.AppCompat.Small"
                android:textColor="@color/grey_40" />

        </LinearLayout>

        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="@color/grey_10" />

    </LinearLayout>

</LinearLayout>

输入 enter image description here  我在xml文件下面,但是红色按钮在左侧,我想将其保留在右侧,而不是在同一行上!我尝试了多种方法来移动它,但是如果我继续右移,它总是会出现在下面。该如何解决?

1 个答案:

答案 0 :(得分:0)

因此,您需要带负号的图像(用于删除操作)在LinearLayout的右侧。

第1步:利用LinearLayout的属性 weightSum 。在给定的代码中,在第一个LinearLayout中编写weightSum="100"。请记住,如果在LinearLayout中使用weightSum,则所有子项的宽度都应为 0dp ,如果方向的方向应为水平,否则高度应为 0dp

第2步:删除第二个Linear FloatingLayout,它以Floating Action Button作为子控件,并将其放置在父LinearLinearLayout的末尾(如代码中第一个LinearLayout所示)。

第3步:不需要具有两个TextView的第四个LinearLayout,可以将其删除。

层次结构如下

<com.balysv.materialripple.MaterialRippleLayout>

    <LinearLayout
        android:weightSum="100">

        <ImageView
            android:layout_width="0dp"
            android:layout_weight="10"/>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_weight="80">

            <TextView/>
            <TextView/>

        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_weight="10">

            <android.support.design.widget.FloatingActionButton/>

        </LinearLayout>

    </LinearLayout>

</com.balysv.materialripple.MaterialRippleLayout>

即使我没有使用您的确切照片,输出看起来也像这样。使用上面的层次结构后,只是为了了解如何显示它。

我还没有使用过View(我想您已经用它来获得一条水平线)。如果您想尝试放置它并使用 layout_weight

进行一些调整

enter image description here