Home > database >  Add an element outside a ConstraintLayout for my adapter
Add an element outside a ConstraintLayout for my adapter

Time:04-05

I'm trying to display cool dot when I want to notify new items. When i set negative margin or translation, the dot is cut, theses littles ilustration will make things a lot clearer:

What i want :

enter image description here

What I get :

Here's my layout xml :

    <?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="240dp"
    android:layout_margin="10dp"
    android:layout_marginBottom="20dp"
    android:layout_gravity="center_horizontal"

    android:elevation="1dp"
    android:background="@drawable/bg_element_list"
    android:foreground="@drawable/effect_ripple"
    android:clickable="true"
    android:focusable="true">

    <ImageView
        android:id="@ id/file_img"
        android:layout_width="fill_parent"
        android:layout_height="210dp"
        android:paddingTop="10dp"
        android:paddingBottom="5dp"
        android:src="@drawable/ic_pdf"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@ id/file_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:paddingStart="20sp"
        android:paddingEnd="20sp"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:text="teeeeeeeeeeeeeeeeeeeeeeeeeeeeeest"
        android:textAlignment="center"
        android:textColor="@color/dark_grey"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@ id/file_img" />

    <ImageView
        android:id="@ id/file_new"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/ic_newfile"
        android:translationY="-22dp"
        android:translationX="22dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Someone have an idea?

Thanks

CodePudding user response:

On the ConstraintLayout, set

android:clipChildren="false"

This will allow the ImageView to draw outside the ConstraintLayout. See the documentation.

CodePudding user response:

If you use padding on the layout instead of layout_margin, and set clipToPadding as false, things will be able to draw within the padding area. Margin is really for required space outside of the View, padding is space inside it (where it draws its contents)

  • Related