0

我正在使用这个 SO 答案来模拟我的 BottomSheetDialogFragment 的高度,因为高度不适用于它。

https://stackoverflow.com/a/40927770/11110509

但是,当我添加那个假阴影时,会出现与 SO 答案不同的不需要的空白。如何删除它?

在此处输入图像描述

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

    <View
        android:id="@+id/fragplaces_top_shadow"
        android:layout_width="match_parent"
        android:layout_height="16dp"
        android:background="@drawable/shadow_dialog_places_top"/>

    <TextView
        android:id="@+id/fragplaces_app_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Places near me"
        android:textColor="@color/colorWhite"
        android:textStyle="bold"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/fragplaces_top_shadow"
        android:paddingStart="12dp"
        android:paddingEnd="12dp"
        android:paddingTop="16dp"
        android:paddingBottom="16dp"
        android:background="@color/standardBlue"/>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/fragadd_recycler"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/fragplaces_app_name"
        android:background="@color/colorWhite"/>

</RelativeLayout>

这是人造阴影:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:angle="90"
        android:endColor="@android:color/transparent"
        android:startColor="#64000000"/>
</shape>

向父布局添加透明背景也不起作用:

android:background="@android:color/transparent"

如何删除假阴影中不需要的空白?

4

2 回答 2

0

在您的对话框设置中,尝试将背景设置为透明:

View view = View.inflate(getContext(), R.layout.fragment_bottom_sheet, null);
dialog.setContentView(view);

( (View) view.getParent()).setBackgroundColor(Color.TRANSPARENT);

请注意,您将其应用于视图而不是对话框。

于 2020-11-19T10:38:21.853 回答
0

简单的破解

您可以给android:layout_marginTop="-5dp"(或 -3dp 到 -5dp)查看(fragplaces_top_shadow)

于 2020-11-19T10:47:35.573 回答