Показать круг с RelativeLayout - PullRequest
1 голос
/ 26 марта 2020

У меня есть RelativeLayout, где я раздуваю текущее представление:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:background="@drawable/selected_background"
    android:clipChildren="false"
    android:clipToPadding="false"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <View
        android:translationX="-5dp"
        android:translationY="-5dp"
        android:background="@drawable/selected_edge_circle"
        android:layout_width="25dp"
        android:layout_height="25dp"/>


</LinearLayout>

selected_background является рисованным:

 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
  <solid android:color="@android:color/holo_red_dark"/>
  <stroke android:width="3dp" android:color="#4fa5d5"/>
</shape>

и selected_edge_circle:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
  <size android:width="25dp" android:height="25dp"/>
  <solid android:width="3dp" android:color="#4fa5d5"/>
  <stroke android:width="3dp" android:color="#4fa5d5"/>
</shape>

Я получаю такой результат: enter image description here

Как вы можете видеть, круг обрезан, хотя я и не указал его обрезать. Я хочу показать круг в верхнем левом углу, который выглядит следующим образом:

enter image description here

Я не хочу оборачивать этот макет в другой контейнер и установить отступ или поле, я хочу, несмотря ни на что, переполнить верхний левый круг. Есть идеи, кем этого можно достичь? Спасибо!

1 Ответ

1 голос
/ 26 марта 2020

Я не знаю, так ли вы этого хотите. Я считаю, что это способ сделать.

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

    <LinearLayout
        android:orientation="vertical"
        android:background="@drawable/selected_background"
        android:clipChildren="false"
        android:clipToPadding="false"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="20dp">

        <View
            android:translationX="-5dp"
            android:translationY="-5dp"
            android:background="@drawable/selected_edge_circle"
            android:layout_width="25dp"
            android:layout_height="25dp"/>

    </LinearLayout>

</RelativeLayout>
...