FrameLayout со скругленными углами

У меня есть FrameLayout внутри моего корневого представления (линейный:вертикальный), который я использую для хранения разных фрагментов в зависимости от пользовательского ввода. FrameLayout меньше, чем фон, поэтому он кажется "плавающим".

Как мне обойти углы FrameLayout?

фрагменты, которые идут внутри FrameLayout не являются фотографиями, поэтому я не могу обрезать их.

2 ответов


создайте xml-файл, например your_rounded_shape.xml в папку drawable и добавьте следующий код:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#CCCCCC"/>    

    <stroke android:width="2dp"
        android:color="#999999"/>

    <padding android:left="2dp"
         android:top="2dp"
         android:right="2dp"
         android:bottom="2dp"/> 

    <corners android:bottomRightRadius="8dp" 
         android:bottomLeftRadius="8dp" 
         android:topLeftRadius="8dp" 
         android:topRightRadius="8dp"/> 
</shape>

затем использовать your_rounded_shape.xml в качестве фона в вашем FrameLayout. Что-то вроде этого:--6-->

<FrameLayout
    android:width="match_parent"
    android:height="wrap_content"
    android:background="your_rounded_shape"/>

замените FrameLayout макетом CardView.

<android.support.v7.widget.CardView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:cardCornerRadius="8dp">

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