是否有可能在 recyclerview 中将 textview 稍微超出 cardview?

Is it possible to have a textview slightly out of a cardview in a recyclerview?

好吧,这似乎是一个简单的问题,但相信我,我已经花了几个小时来完成这个问题。只是想知道是否可以在 cardView 的右侧稍微带出一个 textview。顺便说一句,texview 在许多布局下,例如线性布局和相对布局。

我也尝试在其父布局的 xml 中添加此代码。 android:clipToPadding="false"android:clipChildren="false" 并且它仍然不工作。我不确定为什么它对我不起作用。我附上了我希望 textview 的布局看起来如何的图像 like.Should 我在我的 recyclerview 的适配器中添加了一些代码?请帮忙。提前致谢

  <android.support.v7.widget.CardView xmlns:tools="http://schemas.android.com/tools"
        xmlns:card_View="http://schemas.android.com/apk/res-auto"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:clipChildren="false"
        android:clipToPadding="false"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        card_View:cardUseCompatPadding="false">



     <LinearLayout
            android:id="@+id/random"
            android:clipChildren="false"
            android:clipToPadding="false"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">




<TextView
        android:id="@+id/random2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>



      <LinearLayout
            android:id="@+id/random3"
            android:clipChildren="false"
            android:clipToPadding="false"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">



  <TextView
        android:id="@+id/random4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>



  <View
        android:id="@+id/random5"
        android:layout_width="0dp"
        android:layout_height="0dp"/>



<TextView
        android:id="@+id/this_is_the_textview_i_want_it_to_come_out_slightly"
        android:layout_marginEnd="-5dp"
        android:layout_marginRight="-5dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>




        </LinearLayout>
        </LinearLayout>

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

下面附上的代码在cardView中,cardView将被放置在recyclerview中

尝试下面的代码并在评论中更新我:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">


<android.support.v7.widget.CardView
    android:clipChildren="false"
    android:clipToPadding="false"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">



    <LinearLayout
        android:id="@+id/random"
        android:clipChildren="false"
        android:clipToPadding="false"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">




        <TextView
            android:id="@+id/random2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>



        <LinearLayout
            android:id="@+id/random3"
            android:clipChildren="false"
            android:clipToPadding="false"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">



            <TextView
                android:id="@+id/random4"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>



            <View
                android:id="@+id/random5"
                android:layout_width="0dp"
                android:layout_height="0dp"/>








        </LinearLayout>
    </LinearLayout>

</android.support.v7.widget.CardView>
<TextView
    android:id="@+id/this_is_the_textview_i_want_it_to_come_out_slightly"
    android:layout_marginEnd="-5dp"
    android:layout_marginRight="-5dp"
    android:layout_marginTop="what ever of your card view"
    android:layout_width="wrap_content"
    android:text="this_is_the_textview_i_want_it_to_come_out_slightly"
    android:layout_height="wrap_content"/>

</FrameLayout>

如果你想把任何东西放在任何地方使用

framelayout

作为parent

有多种方法可以实现这种效果。我会通过将 CardView 封装在另一个 ViewGroup 中然后放置 TextView (应该超过 CardView 边界)来做到这一点。

这样一种布局的示例:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <androidx.cardview.widget.CardView
        android:id="@+id/cardView"

        android:layout_width="match_parent"
        android:layout_height="300dp"

        android:layout_margin="20dp"

        android:foreground="#ACDBDA"

        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
    </androidx.cardview.widget.CardView>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:text="20% Off"
        android:textColor="#000000"
        android:textSize="18sp"
        android:textStyle="bold"

        android:layout_marginBottom="10dp"
        android:layout_marginEnd="10dp"

        android:padding="7dp"

        android:elevation="5dp"

        android:background="@drawable/temp_rounded_border"

        app:layout_constraintBottom_toBottomOf="@id/cardView"
        app:layout_constraintEnd_toEndOf="parent"
        />
</androidx.constraintlayout.widget.ConstraintLayout>

temp_rounded_border.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <solid android:color="#8080FF" />

    <corners
        android:radius="5dp"
        android:topRightRadius="0dp"
        android:bottomRightRadius="0dp"
        />

    <stroke android:color="#8080FF" android:width="1dp" />

</shape>

我没有在设备上测试过此代码,但这是 Android Studio 中设计视图呈现的内容。